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:决定是否销毁
不恋尘世浮华,不写红尘纷扰

浙公网安备 33010602011771号