流程:
1、首先当我们启动spring容器的时候,spring的配置文件被加载。
2、根据配置文件为所有的Bean创建对象。
3、创建完对象之后,会遇到aop的配置。
4、首先解析切入点表达式,并把切入点表达式与bean相匹配,如果能匹配成功,为该bean创建代理对象。如果匹配不成功,则代理对象为目标类。
5、因为代理对象的方法是由目标方法+通知组成,所以spring会根据aop:aspect中的aop:before/aop:after-returning等的方法以及目标方法来组合成对象方法
*注意:
spring会根据目标类有没有实现接口来决定使用jdK代理/cglib代理。
1、当我们的目标类有实现接口的时候,它是jdk代理:
2、当目标类没有实现接口的时候:
使用cglib代理:
本文深入探讨了Spring容器启动过程中的AOP机制,从配置文件加载到Bean创建,再到AOP配置解析与代理对象创建,详细解释了Spring如何根据目标类是否实现接口选择使用JDK代理或CGLIB代理,以及代理对象方法的组合过程。
156

被折叠的 条评论
为什么被折叠?



