Bean的生命周期

Spring容器可以管理singleton作用域的Bean的生命周期,在此作用域下,Spring能够精确地指导该Bean何时被创建,何时初始化完成以及何时被销毁。对于prototype作用域的Bean,Spring只负责创建,当容器创建Bean实例后,Bean的实例就会交给客户端代码来管理,Spring容器将不再跟踪其生命周期。每次客户端请求prototype作用域的Bean的声明周期。

了解Bean的生命周期的意义就在于,可以在某个Bean生命周期某些指定时刻完成一些相关操作。

Bean的生命周期的整个执行过程如下:

①   实例化(当我们的程序加载beans.xml文件),把我们的bean(前提是scope=singleton)实例化到内存

②   调用set方法设置属性

③   如果你实现了bean名字关注接口(BeanNameAware)则,可以通过setBeanName获取id号

④   如果你实现了 bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory

⑤   如果你实现了 ApplicationContextAware接口,则调用方法

//该方法传递ApplicationContext

         publicvoid setApplicationContext(ApplicationContext arg0)

                            throwsBeansException {

                   //TODO Auto-generated method stub

                   System.out.println("setApplicationContext"+arg0);

         }

⑥   如果bean 和 一个后置处理器关联,则会自动去调用 Object postProcessBeforeInitialization方法

⑦   如果你实现InitializingBean接口,则会调用 afterPropertiesSet

⑧   如果自己在<beaninit-method=”init” /> 则可以在bean定义自己的初始化方法.

⑨   如果bean 和 一个后置处理器关联,则会自动去调用 Object postProcessAfterInitialization方法

⑩   将准备就绪的Bean交给调用者

⑪   Spring中Bean的销毁。调用DisposableBean()的destory()方法或者调用destory-method属性配置的销毁方法

 

总结:但是在实际开发过程中一般只用了:1->2->6->10->9->11


原文地址:https://www.cnblogs.com/Black-YeJing/p/9131127.html