spring bean的生命周期1
bean的生成过程
-
spring启动的时候回确定要扫描的包路径,得到beanDefinition的set集合
-
和并beanDefinition
-
加载类,回去类加载器,优先返回当前线程中的类加载器
-
实例化前,beanDefinition加载成功后,开始实例化对象,实例化前,提供了一个扩展点,instantiationAwareBeanPostProcessor.postProcessBeforeInstantiation();
-
实例化,根据definition创建一个对象;工厂方法创建对象,推断构造对象
-
beanDefinition的后置处理,扩展点是 mergedBeanDefinitionPostProcessor.postProcessMergeBeanDefinition();对BeanDefinition进行加工
-
实例化后,还有一个扩展点InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation()
-
自动注入,spring的自动注入 Autowired
-
处理属性,比如@Value就是通过扩展点实现的
-
执行aware方法
-
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的销毁过程
- 在Bean创建过程中,在最后(初始化之后),有一个步骤会去判断当前创建的Bean是不是 DisposableBean:决定是否销毁
不恋尘世浮华,不写红尘纷扰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2021-02-03 链表总结
2021-02-03 你的眼中有春与秋,胜过我见过爱过的一切河流与山川!