IOC - 依赖注入(DI)
spring将bean进行容器化统一管理,需要时由spring创建或直接注入单例,本质上IOC就是个ConcurrentHashMap
AOP
spring如何解决循环依赖
①:createBeanInstance:实例化,其实也就是 调用对象的构造方法实例化对象
②:populateBean:填充属性,这一步主要是多bean的依赖属性进行填充
③:initializeBean:调用spring xml中的init() 方法。
使用三层缓存架构
- singletonObjects:一级缓存 存储的是所有创建好了的单例Bean
- earlySingletonObjects:完成实例化,但是还未进行属性注入及初始化的对象
- singletonFactories:提前暴露的一个单例工厂,二级缓存中存储的就是从这个工厂中获取到的对象