本文来探讨一下Spring框架中的Bean的生命周期:
1、实例化 当我们的程序加载beans.xml文件的时候发生,把我们的bean(前提是scope = singleton)实例化到内存中
2、设置属性 调用set方法设置属性
3、如果实现了BeanNameAware接口的setBeanName(String arg0)方法 则可以通过setBeanName获取bean的id号
4、如果是实现了BeanFactoryAware接口的setBeanFactory(BeanFactory arg0) 则可以获得bean工厂
5、如果实现了ApplicationContextAware接口的setApplicationContext(ApplicationContext arg0) 则可以获得上下文容器ApplicationContext对象
6、如果map和一个后置处理器关联了 则自动调用后置处理器的postProcessBeforeInitialization()方法(BeanPostProcessor的预初始化方法postProcessBeforeInitialization) 体现了aop 针对所有对象编程
7、如果实现了InitializatingBean的afterPropertiesSet()方法 则调用它
8、如果定制了初始化方法 则调用初始化方法(在xml的bean标签中写到init="想要配置的方法" 然后实现这个方法即可)
9、如果实现了BeanPostProcessor的后初始化方法(postProcessAfterInitialization) 则调用它
10、可以使用Bean了
使用....
11、容器关闭
12、如果实现了DisposableBean接口下的destroy方法 则调用它
13、如果xml中的bean标签配置了destory-method="想要执行的销毁函数" 则调用对应的销毁方法