Bean的生命周期详解

1.实例化bean(当我们程序加载beans.xml文件时),把我们的bean实例化到内存(前提是scope='singleton')
 通过构造函数的调用可以证明;
2.调用set方法给属性设值,通过调用对应属性的set方法可以证明;
3.如果实现了BeanNameAware接口(bean名字关注接口),则可以通过setBeanName方法获得id号;
4.如果实现了BeanFactoryAware接口(bean工厂关注接口),则可以通过setBeanFactory方法获取bean工厂;
5.如果实现了ApplicationContextAware(应用上下文关注接口),则可以通过setApplicationContext方法获取应用上下文;
6.如果bean和一个后置处理器(BeanPostProcessor)相关联,则会先调用postProcessBeforeInitialization;
7.如果实现了InitializingBean接口,则会调用afterPropertiesSet方法;
8.如果有自定义的初始化方法,则会调用自定义的初始化方法;
9.然后才会调用postProcessAfterInitialization方法;
10.Bean可以使用了;
11.容器关闭;
12.如果实现了DisposableBean接口,则在关闭容器时会调用destory方法,释放bean所占用的资源;
13.我们可以自己定制销毁bean的方法,释放掉资源,需在配置文件中配置

你可能感兴趣的:(Bean的生命周期详解)