- 面试常见问题:
- bean生命周期
- 循环依赖
- 三级缓存
- FactoryBean 和 beanFactory
- ApplicationContext 和 BeanFactory 的区别
- 设计模式
- bean定义信息BeanDefinition读取xml配置文件,通过抽象接口BeanDefinitionReader读取配置文件规范,源码当中的ConfigurableListableBeanFactory部分内容就是读取.xml配置文件
实例化:在堆中开辟一块空间,属性都是默认值。
初始化:给属性完成赋值操作,调用具体的初始化方法
BeanFactory对应源码当中的prepareRefresh( )和prepareBeanFactory( ),BeanFactoryPostProcessor是对beanDefinition的扩展 ,可以set很多扩展信息,BeanFactoryPostProcessor对应源码当中的invokeBeanFactoryPostProcessors( )和registerBeanPostProcessors( )
Environment:环境,包含 env 和 properties, 为了方便使用,在容器创建的时候会提前将系统的相关属性加载到StandardEnvironment对象当中,方便后续的使用
源码AbstractApplicationContext当中的refresh( )方法,通过调用refresh( )方法了解IOC容器创建原理(执行顺序从上到下)