构造方法先调用父类的构造方法,再调用子类的构造方法

spring的扩展点
1.实现BeanPostProcessor插手实例化,外加实现PriorityOrdered可以让多个实现BeanPostProcessor排序执行,spring自己实现的实现BeanPostProcessor将会是自己set进去


2.实现BeanFactoryPostProcessor

区别
BeanPostProcessor:bean级别的处理,针对某个具体的bean进行处理,默认是会对整个Spring容器中所有的bean进行处理,方法中有两个参数。类型分别为Object和String,第一个参数是每个bean的实例,第二个参数是每个bean的name或者id属性的值。所以我们可以第二个参数,来确认我们将要处理的具体的bean
BeanFactoryPostProcessor:BeanFactory级别的处理,是针对整个Bean的工厂进行处理
当我们调用BeanFactoryPostProcess方法时,这时候bean还没有实例化,此时bean刚被解析成BeanDefinition对象。
Spring容器初始化bean大致过程 定义bean标签>将bean标签解析成BeanDefinition>调用构造方法实例化(IOC)>属性值得依赖注入(DI)
参考
https://www.cnblogs.com/dreampig/p/9036077.htm
还有BeanFactoryPostProcess的子类也算是扩展点
番外:
在spring中有很多以Aware结尾的接口.如果一个Bean实现了该接口,那么当该Bean被spring初始化时,spring会向该Bean注入相关资源(就是会回调接口中的方法).,实现了ApplicationContextAware接口的bean,当spring容器初始化的时候,会自动的将ApplicationContext注入进来l
ApplicationContextAware解决单例中注入了一个原型对象使用@Lookup或实现该接口


本文深入探讨了Spring框架中的两大扩展点:BeanPostProcessor和BeanFactoryPostProcessor,解析了它们的作用时机与应用场景,并对比了两者之间的区别。同时,介绍了如何通过实现特定接口,如ApplicationContextAware,来增强Bean的功能。
2356

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



