对于spring的生命周期,无论是在实际应用中,还是在面试中,都是非常重要的一个技术知识点,仅此来记录下bean的生命周期。
Bean的生命周期
上图就是Bean的完整的生命周期,文字描述如下:
1、首先通过反射的方式进行Bean的实例化。
2、填充Bean的属性。(populateBean()方法)
3、调用aware接口相关方法:invokeAwareMethod(完成BeanName,BeanFactory,BeanClassLoader对象的属性设置)
4、调用BeanPostProcessor中的前置处理方法:使用比较多的有(ApplicationContextPostProcessor,设置ApplicationContext等对象)
5、调用initmethod方法:invokeinitmethod(),判断是否实现了initializingBean接口,如果有,调用afterPropertiesSet方法,没有就不调用。
6、调用BeanPostProcessor的后之处理方法,spring的AOP就是在此处实现的。
7、获取到完整的对象,可以通过getBean的方式来进行对象的获取。
8、销毁Bean,判断是否实现了dispoableBean接口,调用destroyMethod方法。