学习心态
- 明确主线和分支,先主线,后求细
- 课后主动跟一边源码,自己能走通才是真的通
学习源码的意义
- 提升阅读代码的能力,学习别人的代码才能更好的写代码
- 对框架有深层的理解
- 面试
- 为阅读别的框架源码打下基础
几个简单的问题
- 简述beanFactory:生产bean的工厂,主要作用是bean的生产和装配
- 简述beanFactory和applicationContext的区别:beanFactory如上,applicationContext不仅包含beanFactory生产bean的功能,还包括bean生命周期的管理,自动注册beanPostProcessor,beanFactoryPostProcessor,国际化,和内部发布机制
- 简述springioc的加载过程:主要包括定位,解析,注册,实例化
- 定位:资源文件定位,主要包括bean的xml,@Configuration,javaConfig
- 解析:解析资源文件通过beandefinitionReader
- 注册:将beanDefinition的name放到map里,bean的注册实在beanfactory中完成
- 实例化:在beanfactory的geiBean中完成初始化
- bean的生命周期
定位,解析,注册,实例化 -------------> 设置对象属性 ----->通过后置处理器实现bean的诸多aware接口 -------------------> 初始化 ----> 讲bean放入单例池中
- spring中有哪些扩展接口和调用时机
- postConstruct注解,在bean的属性都设置好后被调用,完成一些初始化工作
- applicationContextAware接口,只要bean实现了这个接口,就能在bean被加载过程中获取上下文