Spring AOP

1.一些概念


1. JoinPoint:连接点(执行点 + 方位,执行点可以理解为某方法,方位,可以理解为方法调用前,或者后)

    程序中的一些点,比如方法调用前,方法调用后,方法抛出异常后。spring也只支持方法调用前,方法调用后,方法抛出异常后这些点。

    也就是说spring也只能在这些点上织入逻辑。


2. Pointcut: 切点  (只是描述执行点)

    连接点很多,用来刻画你关注的连接点。切点可以理解为一组连接点组成的集合。


3. Advice:增强

     增强是织入到目标类连接点上的一段程序代码。

     BeforeAdvice, AfterRetuningAdvice,ThrowsAdvice 带方位的增强。


4. Target:目标对象

     增强织入的类


2. Spring AOP

spring aop通过动态代理的机制,将增强逻辑织入目标对象,所以不需要特殊的编译器,也不需要特殊的类加载器。

spring aop使用的动态代理机制,就是JDK的动态代理机制和CGLIG的动态代理机制。


CGLIB 创建的代理类的性能要优于jdk动态代理机制创建的代理类, 但CGLIB创建动态代理的过程要慢于jdk。


3. Spring AOP的5中增强接口

1. 前置增强:org.springframework.aop.MethodBeforeAdvice

2.后置增强:org.springframework.aop.AfterReturningAdvice

3. 环绕增强:org.aopalliance.intercept.MethodInterceptor

4.异常抛出增强:org.springframework.aop.ThrowsAdvice

5. 引介增强:org.springframework.aop.IntroductionInterceptor 可以在目标类中增加方法或者属性


4. Spring AOP中的一些重要的类

          public interface AopProxy{

                   Object getProxy();

                    Object getProxy(ClassLoader classLoader);

           }


          final class JdkDynamicAopProxy implements AopProxy, InvocationHandler.......  // 使用JDK的动态代理实现

          class CglibAopProxy implements AopProxy......   //  使用CGlib实现











     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值