Spring IoC理解要点
Spring源码解读-AOP、事务
Spring循环依赖
3.描述一下bean的生命周期?
在表述的时候不要只说图中有的关键点,要学会扩展描述
- 实例化bean:反射的方式生成对象
- 填充bean的属性:populateBean(),循环依赖的问题(三级缓存)
- 调用aware接口相关的方法:invokeAwareMethod(完成BeanNameBeanFactory.BeanClassLoader对象的属性设置
- 调用BeanPostProcessor中的前置处理方法:使用比较多的有(ApplicationContextPostProcessor,设置
ApplicationContext,EnvironmentResourceLoader,EmbeddValueResolver等对象) - 调用initmethod方法:invokelnitmethod(),判断是否实现了initializingBean接口,如果有,调用afterPropertiesSet方法,没有就不调用
- 调用BeanPostProcessor的后置处理方法:spring的aop就是在此处实现的,AbstractAutoProxyCreator
注册Destuction相关的回调接口:钩子函数 - 获取到完整的对象,可以通过getBean的方式来进行对象的获取
- 销毁流程:
(1)、判断是否实现了DispoableBean接口,
(2)、调用destroyMethod方法