java面试

springbean生命周期

2020-05-22  本文已影响0人  叶小松_ea46

IOC容器在处理Bean的时候有三个关键点都发生在AbstractAutowireCapableBeanFactory#doCreateBean()方法中

1. createBeanInstance() -> 实例化Bean

2. populateBean() -> 填充属性

3.initializeBean() -> 处理Bean初始化后的各种回调事件

在实例化和设置属性之后 进入到initializeBean方法中

先调用invokeAwareMethod()方法执行 Aware回调

在执行BeanPostProcessor#postProcessorBeforeInitialization()

在调用InitializingBean的afterPropertiesSet()方法 ,该方法是设置完属性后回调的

然后调用xml里指定的init-method方法(如果没指定执行默认的)

再调用BeanPostProcessor#postProcessorAfterInitialization() 进行后置处理

此时Bean已经完全创建好了

如果该Bean实现了DisposableBean#destroy方法 容器关闭时先调用此方法 

然后在调用xml中指定的destory-method方法(如果没指定执行默认的)

上一篇 下一篇

猜你喜欢

热点阅读