SpringBean的一生,也就是Bean的生命周期。生命有年轻有衰老,有生亦有死,bean也不例外。同任何生命一样,bean也是由它的母亲生的,它的母亲是spring bean factory(这只是个接口,由具体的实现类来管理bean的生命周期)
1、首先spring启动后,先找到了bean的部分dna(xml配置信息、注解),然后开始了辛苦的生产过程:
2、首先,她先根据配置的类型,实例化了一个bean;
3、然后,她开始给bean安装胳膊腿(bean的属性);
4、安装完后,她需要检查下这个bean儿子是否被配置了需要通知bean的名称(bean类型接口BeanNameAware),如果需要的话,她就需要拿起那个配置的电话打过去:“这个bean的名字叫’二狗‘!”(接口BeanNameAware的方法setBeanName(bean的id));
5、之后,她还需要同样通知下bean的妈妈是谁(BeanFactoryAware)、bean所在的村是哪里(ApplicationContextAware);
6、这个bean诞生后,他自己要干一件的首秀,比如先哭他个惊天动地,或者四周随便看看是个什么样的家庭就把我生出来了啊(InitializingBean接口,init-method配置);
7、不过bean的这个首秀或许太重要了,所以在他首秀前后,spring老娘还需要做准备和收尾(BeanPostProcessor,后置处理器)。bean首秀前,spring会通知“bean儿子要开始表演了”(postProcessBeforeInitialization),首秀结束后,spring会再次发出通知“bean儿子表演结束了(postProcessAfterInitialization)”;
8、到此bean就被安置到了村里,哪里需要去哪里;
9、然而,村子终究会被毁灭的,覆巢之下安有完卵?bean也需要先被销毁。但是销毁前,bean是可以发表遗言的。(DisposableBean接口、destory-method配置)
10、发表完遗言,bean就……
11、最后,村子也……