Spring学习---AOP

    AOP是Aspect-Oriented Programing的简称,面向切面编程。

    AOP可以说是在OOP上的基础上的扩展,在面向对象编程的过程中,可以很好的组织代码,通过继承关系实现代码复用,但是程序总是会出现一些重复代码(打印日志,安全信息等),而且不方便通过继承的方法将它们管理起来,他们功能重复并且需要用在不同的地方,这时候就需要使用AOP思想,将这些重复的代码抽取出来单独维护,在需要时统一调用。

    AOP与原本的纵向继承机制不同,它采用的是横向抽取机制。

    下面介绍一下AOP中常用的术语:

       Joinpoint:连接点,指的是那些方法可以被拦截

        Pointcut:切入点,指对哪些Joinpoint进行拦截

        Advice:通知,定义在连接点处做什么,就是要增强的代码

        Target:目标对象,被增强的对象

        Proxy:代理对象

        weaving:织入,指将增强应用到目标对象生成代理对象的过程

        Aspect:切面,就是切入点和通知的结合,一个切面允许有多个切点和多个通知的组合。

    Spring的AOP代理:

        JDK动态代理:对有接口的类实现代理

        CGLib:对类生成代理

        在Spring中如果一个被代理的类实现了接口,则使用JDK动态代理,如果没有实现接口,则使用CGLib生成代理。

        








猜你喜欢

转载自blog.csdn.net/zhang_hongxin/article/details/81054179