(1)Spring的生命周期:简单概括为4个阶段:
1.1 创建对象
1.2 DI属性赋值
1.3 初始化
1.4 销毁
(2) Bean的作用域 :
1. Singleton: 单例
2. Prototype: 多例
3. Request: 每次http请求都会创建一个新的bean
4. Session: ~
5. ApplicationContext: ~
(3) 注册Bean的4种方式:
1. 解析描述类的xml文件<bean class="com.dj.xxxService" id = ""></bean>
2. 扫描解析被注解@Component 及其衍生注解标识的类
3. @Configuration + @Bean
4. @Import (3种方式)
(4) 单例Bean并发读写成员变量,会出现脏读,线程不安全问题
(5) SpringBean加载过程中有几种形态: 概念态 ---> 定义态 ---> 早期态 ---> 成品态
(6) 循环依赖的出现有常见形式,Spring的三级缓存解决循环依赖的过程是什么?
结论: Spring容器不可为依赖的对象赋值为null
6.1 Service自己注入自己,即在自己类里定义属性Service
6.2 Aservice有属性Bservice, Bservice有属性Aservice