Spring中AOP的执行流程

Spring的AOP:

AOP就是一种更高级的动态代理的使用; Aspect Oritention Programming(面向切面编程)

切入点:要加入业务逻辑的点(在哪些类的哪些方法上面)

通知:通知包含两个方面,1,代表方法的执行时间,2,在这个时间上面要做什么事情;

切面:一个切入点+一个通知=一个切面(在什么地方,在什么时候,做什么事情);

织入:把一个切面应用到真实对象上面的过程,就叫做织入;    

 

SpringAOP的执行流程:

1,解析xml;

2,实例化所有的bean;

3,解析aop:config;    

    1,解析aop:aspect,得到aspect引用的对象;txManager  

    2,解析aop:aspect里面的每一个切面;      

            1,得到该aspect对应的pointcut-ref;      

            2,得到pointcut-ref对应的pointcut的表达式;      

            3,使用表达式中用于匹配类型的表达式;    

            4,使用该表达式去和spring里面配置的所有的bean的类型进行匹配;          

                    1,如果匹配不上,不管;          

                     2,如果匹配上了,该对象作为spring动态代理的目标对象;              

                              1,如果该对象实现了接口,使用JDK的动态代理包装;              

                               2,如果该对象没有实现接口,使用cglib包装;              

                    3,得到配置的拦截时机+逻辑提供类(txManager)的对应方法(从method解析)+pointcut表达式中方法的匹配模式创建一个拦截器              

                    4,在把该拦截器使用对应的动态代理机制代理成代理对象;              

                     5,替换spring容器中的对应bean的实例;

 

Spring中AOP的通知类型:

aop:before:前置通知;

aop:after-returning:后置通知;

aop:after:最终通知;

aop:after-throwing:异常通知;

aop:around:环绕通知;

关于环绕通知的使用:

切入点的表达式:AspectJ:

 

AOP的注解式开发

注意:在配置文件中一定要指明:<aop:aspectJ-autoproxy/>

这个标签相当于指明了第三方解析程序

参考:

https://blog.csdn.net/ming13849012515/article/details/86022143

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值