spring bean的生命周期1

bean的生成过程

  1. spring启动的时候回确定要扫描的包路径,得到beanDefinition的set集合

  2. 和并beanDefinition

  3. 加载类,回去类加载器,优先返回当前线程中的类加载器

  4. 实例化前,beanDefinition加载成功后,开始实例化对象,实例化前,提供了一个扩展点,instantiationAwareBeanPostProcessor.postProcessBeforeInstantiation();

  5. 实例化,根据definition创建一个对象;工厂方法创建对象,推断构造对象

  6. beanDefinition的后置处理,扩展点是 mergedBeanDefinitionPostProcessor.postProcessMergeBeanDefinition();对BeanDefinition进行加工

  7. 实例化后,还有一个扩展点InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation()

  8. 自动注入,spring的自动注入 Autowired

  9. 处理属性,比如@Value就是通过扩展点实现的

  10. 执行aware方法

  11. beanPostProcessor

    1.InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation()
    2. 实例化
    3. MergedBeanDefinitionPostProcessor.postProcessMergedBeanDefinition()
    4. InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation()
    5. 自动注入
    6. InstantiationAwareBeanPostProcessor.postProcessProperties()
    7. Aware对象
    8. BeanPostProcessor.postProcessBeforeInitialization()
    9. 初始化
    10. BeanPostProcessor.postProcessAfterInitialization()
    

bean的销毁过程

  1. 在Bean创建过程中,在最后(初始化之后),有一个步骤会去判断当前创建的Bean是不是 DisposableBean:决定是否销毁
posted @   小傻孩丶儿  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2021-02-03 链表总结
2021-02-03 你的眼中有春与秋,胜过我见过爱过的一切河流与山川!
点击右上角即可分享
微信分享提示