Bean的生命周期
大致可分为4个阶段,实例化,初始化,使用,销毁
1.spring根据bean的构造方法或工厂方法创建bean实例
2.spring通过依赖注入bean的属性值或引用到bean实例中
3.检查bean是否实现了带有aware后缀的接口,实现了对应的aware接口则调用对应的方法
如实现了BeanNameAware接口,则调用setBeanName方法
4.如果bean注册了BeanPostProcessor接口,则会去调用postProcessorBeforeInitialization方法完成bean的前置处理
5.如果bean实现了initializingBean接口,调用afterPropertiesSet方法,如果bean配置指定了init-method,则调用指定的方法进行初始化
6.初始化完成后,如果bean注册了BeanPostProcessor接口,则会去调用postProcessorAfterInitialization方法完成bean的后置处理
7.bean初始化完成后,就可以开始使用了
8.在bean销毁之前,如果bean实现了disposableBean接口,则会调用destroy方法,如果bean配置中指定的了destroy-method,则调用指定的销毁方法