Spring Bean初始化阶段

bean容器的启动阶段

  • 读取bean的xml配置文件或者对应注解的bean,将bean元素分别转换成BeanDefinition对象。
  • 然后通过BeanDefinitionRegistry对象将这些bean注册到beanFactory中,保存在它的一个concurrentHashMap中。
  • 将BeanDefinition注册到beanFactory后,在这里spring提供了一个扩展的切口,允许我们通过实现BeanFactoryPostProcessor接口来插入我们自定义的代码。
    典型的例子:PropertyPlaceholderConfigurer,我们一般配置在数据库的dataSource时使用到的占位符的值,就是它注入进去的。

容器中bean的实例化阶段

实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段spring又给我们暴露了很多扩展点

  • 各种Aware接口,比如BeanFactoryAware,对于实现Aware接口的bean,在实例化bean的时候Spring会帮我们注入对应的BeanFactory实例
  • BeanPostProcessor接口,实现了BeanPostProcessor接口的bean,在实例化bean时Spring会帮我们调用接口中的方法。
  • InitializingBean接口,实现了InitializingBean接口的bean,在实例化bean时Spring会帮我们调用接口中的方法
  • DisposableBean,实现了DisposableBean接口的bean,在bean死亡时Spring会帮我们调用接口中的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值