Spring IOC加载总结

详细的加载过程可以查看:https://blog.csdn.net/u010597819/article/details/86646227

  1. 准备环境:各种环境变量,properties配置加载
  2. 创建应用上下文:根据环境选择以哪种上下文类型创建,注册内置BeanPostProcessor处理器(例如:auto wire等)
  3. 刷新应用上下文
  4. 获取Bean工厂:创建DefaultListableBeanFactory
  5. 回调当前上下文中已注册的注册中心及工厂后置动作:即BeanDefinitionRegistryPostProcessor及BeanFactoryPostProcessor类型的实现,后置动作中包含了加载BeanDefinition定义:各种注解或者XML配置的定义
  6. 注册BeanPostProcessor
  7. 注册监听器
  8. 完成初始化:初始化非懒惰初始化的Bean
  9. 创建Bean
  10. 回调MergedBeanDefinitionPostProcessor对Bean进行修改
  11. 是否允许提前曝光对象,如果是则添加至缓存并添加回调SmartInstantiationAwareBeanPostProcessor(通知当前已提前曝光的Bean对象)
  12. 回调InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation通知当前已实例化的Bean
  13. 回调InstantiationAwareBeanPostProcessor.postProcessPropertyValues对Property属性Value进行后置处理
  14. 注入组装Bean实例populateBean
  15. 初始化bean
  16. 如果Bean是通知类型,BeanNameAware、BeanClassLoaderAware、BeanFactoryAware,则首先回调相应的通知
  17. 回调初始化之前的处理postProcessBeforeInitialization
  18. 完成初始化:调用Bean初始化方法
  19. 回调初始化之后的处理postProcessAfterInitialization
  20. 初始化完成回调SmartInitializingSingleton类型后置动作afterSingletonsInstantiated
  21. 至此完成IOC加载
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值