【ⓈSpring & Spring MVC】Spring Bean的生命周期是怎样的?
Spring最基础的能力是IOC(依赖注入)、AOP(面向切面编程),ioc改善了模块之间的耦合问题。
依赖注入的方式:set方法,构造方法,成员变量+@Autowired;Bean的管理是IOC的主要功能。
bean的生命周期完全由spring容器管理,从属性设置到各种依赖关系的注入,简化了开发人员对bean的生命周期认知;
Spring的容器中Bean生命周期如下:
对象创建
1)从xml配置的Bean,@Bean注解,或者Java代码中读取Bean的定义,实例化Bean对象;
2)设置Bean的属性;
3)注入Aware的依赖(BeanNameAware,BeanFactoryAware,ApplicationContextAware);
4)执行通用的方法前置处理,方法: BeanPostProcessor.postProcessorBeforeInitialization()
5)执行 InitalizingBean.afterPropertiesSet() 方法
6)执行Bean自定义的初始化方法init,或者 @PostConstruct 标注的方法;
7)执行通用的方法后置处理,方法BeanPostProcessor.postProcessorAfterInitialization()
8)创建对象完毕
对象销毁
9)执行 DisposableBean.destory() 方法;
10)执行自定义的destory方法或者 @PreDestory 标注的方法;
11)销毁对象完毕