1、实体化bean:反射的方式生成物件
2、填充bean的属性:populateBean(),进行依赖注入,这里可以扩展出回圈依赖问题(三级快取)
3、呼叫aware界面相关的方法:invokeAwareMethod(完成BeanName、BeanFactory、BeanClassLoader物件的属性设定)
4、呼叫BeanPostProcessor中的前置方法:使用的比较多的有(ApplicationContextPostProcessor,设定ApplicationContext,Enviroment,ResourceLoader等物件)
5、呼叫initMethod方法:invokeInintMethod(),判断是否实作了initializingBean界面,如果有,呼叫afterPropertiesSet方法,没有就不呼叫
6、呼叫BeanPostProcessor的后置处理方法:spring的aop就是在此处实作的,AbstractAutoProxyCreator
注册Destruction相关的回呼界面:钩子函式
7、获取到完整的物件:可以通过getBean的方式来进行物件的获取
8、销毁流程 1.判断是否实作了DispoableBean界面,2.呼叫destoryMethod方法
0 评论