1.Spring容器在加载业务bean之前他会通过refresh往容器中注入一些后置处理器对象,这些对象在加载业务bean时他会给bean做
拦截、增强等功能,从断点监控上来看,内置的后置处理器有18个,当bean的属性赋值完毕后,则利用后置处理器的before和after方
法进行代理增强,当然属性赋值也是利用后置处理器来完成的,具体的bean如下图:

在Spring ioc容器中注入对象的过程中,在调用bean的无参构造函数之后会调用

populateBean()方法来进行属性赋值,也就是对象的依赖注入

属性赋值完毕之后就像对象的初始化工作,

initializeBean()

其实就是调用了后置处理器的前后拦截方法,

 

 

 

那么问题来了,Spring 是如何识别一个service加入了事务的注解,并且需要生成代理,下面方法用来进行判断的

首先是获取所有的增强器,然后判断当前来是否符合该增强器

具体参考:https://blog.csdn.net/hu619016140/article/details/100524930

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐