spring的扩展点(一)

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

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或实现该接口

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值