Spring中Bean的生命周期
Spring容器可以管理singleton作用域的Bean的生命周期,对于prototype作用域的Bean,Spring只负责创建。每次客户端请求prototype作用域的Bean时,Spring容器都会创建一个新的实例。我们要跟踪它的生命周期,并且在不使用的时候能够销毁它。
Bean的生命周期流程:
Bean的生命周期的整个执行过程描述如下:
(1)、根据配置情况调用Bean构造方法或工厂方法实例化Bean。
(2)、利用依赖注入完成Bean中所有属性值的配置注入。
(3)、如果Bean实现了BeanNameAware接口,则Spring调用Bean的setBeanName()方法传入当前Bean的id值。
(4)、如果Bean实现了BeanFactoryAware接口,则Spring调用setApplicationContext()方法传入当前的ApplicationContext实例的引用。
(5)、如果Bean实现了ApplicationContextAware接口,则Spring调用setApplicationContext()方法传入当前ApplicationContext实例的引用。
(6)、如果BeanPostProcessor 和 Bean 关联,则 Spring 将调用该接口的预初始化方法postProcessBeforelnitialzation() 对 Bean 进行加工操作,这个非常重要,Spring的AOP就是用它实现的。
(7)、如果Bean实现了InitializingBean 接口,则Spring将调用afterPropertiesSet()方法。