spring bean的生命周期:
| 1.bean容器找到配置文件spring bean的定义(配置文件或者注解的方式) |
| 2.bean容器利用Java反射 Reflection api创建一个bean的实例(ApplicationContext或BeanFactory) |
| 3.如果涉及到一些属性值,利用set()方法设置一些属性值 |
| 4.如果bean实现了beanNameAware接口,调用setBeanName()方法,传入bean的id |
| 5.如果bean实现了beanClassloaderAware接口,调用setBeanClassLoader()方法,传入ClassLoader对象的实例。 |
| 6.如果实现了其他*.Aware接口,就调用相应的方法。 |
| 7.如果有和加载这个bean 的spring 容器相关的beanPostProcessor对象,执行postProcessBeforInitlalization()方法。 |
| 8.如果bean实现了InitializingBean 接口,执行afterPropertiesSet()方法。 |
| 9.如果bean 在配置文件中的定义包含init-method属性,执行指定的方法。 |
| 10.如果有和加载这个bean的spring容器相关的beanPostProcessor对象,执行postProcessAfterInitialization()方法。 |
| 11.当要销毁bean的时候,如果bean实现了disposableBean接口 |



