Spring中Bean的生命周期
分4大步:
一:Bean实例化及依赖注入
- 扫描定义bean的XML文件/java配置类/注解
- 创建bean实例
- 对bean的属性进行依赖注入
二:检测Spring相关的Aware接口
- 如果实现了BeanNameAware接口,就调用setBeanName()方法
- 如果实现了BeanClassLoaderAware接口,就调用setBeanClassLoader()方法
- 如果实现了ApplicationContextAware接口,就调用setApplicationContext()方法
三:Bean生命周期中的创建回调
- 如果检测到@PostConstruct,就调用被注解的方法
- 如果实现了InitializingBean,就调用afterPropertiesSet()方法
- 如果XML文件中<bean init-method>指定了初始化方法,就调用指定的方法
四:Bean生命周期中的销毁回调
- 如果检测到@PreDestroy,就调用被注解的方法
- 如果实现了DisposableBean,就调用destroy()方法
- 如果XML文件中<bean destroy-method>指定了销毁方法,就调用指定的方法(对scope为prototype的bean不进行这一步)
转载于:https://my.oschina.net/lhplj/blog/757272