spring bean 生命周期:
描述:
spring bean 生命周期
1、spring 启动是会加载spring管理的bean,并对bean进行实列化(默认实列化 单例模式)
2、对实列化bean进行属性设置
3、检查aware相关方法以及设置相关依赖
(1)实现beanNameAware接口,将bean的id设置到setBeanName()方法
(2)实现beanFactoryAware接口,spring将调用setBeanFactory方法,将beanFactory实列传进来
(3)实现beanClassLoadAware接口,setBeanClassLoader方法被调用,将类加载器传入到bean
4、调用beanPostProcess前置处理
(1)bean实现BeanPostProcessor接口,它的postProcessBeforeInitialization方法将被调用
5、检查是否是InitializingBean以决定是否调用afterProperties方法
(1)bean实现了InitializingBean接口,spring将调用它的afterPropertiesSet接口
6、检查是否配置自定义init-method方法
(1)配置了init-method方法,会被调用
7、调用beanPostProcess后置处理
(1)bean实现了BeanPostProcessor接口,它的postProcessAfterInitialization接口方法被调用
8、注册必要的destruction回调接口
9、bean的准备已经完成,可以在应用上下文进行调用
10、是否实现disposableBean接口
(1)bean实现了disposableBean接口,spring就会调用destroy()接口
11、是否配置自定义的destroy方法
(1)bean上配置了destroy-method属性就会调用destroy接口