版权声明:《==study hard and make progress every day==》 https://blog.csdn.net/qq_38225558/article/details/84204885
AOP术语:
连接点(Joinpoint):程序执行的某一个特定位置,如类初始前后,方法的运行前后。而Spring只支持方法的连接点。
切点(Pointcut):切点可以定位到相应的连接点,一个切点可以定位多个连接点。
增强(Advice):又被称为通知,完成逻辑的增强。
目标对象(Target):增强逻辑织入的目标类。
引介(Introduction):特殊的增强,为类添加一些属性和方法。
织入(Weaving): 将增强添加到目标类的具体连接点上的过程。Spring使用动态代理织入。
代理(Proxy):一个类(原类)被织入增强(逻辑)后,就产生一个结果类,称为代理类。
切面(Aspect):由切点和增强组成
Spring的AOP
配置三要素: --> 你要在哪些类的哪些方法(前面还是后面)做什么功能
何时:在执行方法之前/之后/有异常...
何地:在哪些包中的哪些类的哪些方法上面执行
做什么事:在UserServie中执行update方法之前添加日志
配置方式一:xml 配置方式二:注解
xml版实现AOP: 【注意:使用 环绕通知 就不能使用 前置,后置,异常,最终4个通知 】
注解版实现AOP:
Spring的AOP是使用代理模式来完成的,下面我们来了解一下代理模式中的静态代理和动态代理
静态代理:不使用,代码增多,使用动态代理!
动态代理:如果代理的类有接口-使用JDK的动态代理模式,如果代理的类没有接口-使用CGLIB的动态代理模式。
下面是JDK的动态代理模式: