三级缓存 for 循环注入。 二级缓存 for 代理对象
Spring管理的对象叫做Bean
Bean的生命周期
构造AService对应的bean的过程:
1.扫描类--->BeanDefinition
2.aService = new AService(); //原始对象--->1ambda表达式-->三级缓存
3.aService填充属性b---->BService的Bean
4.Aware,init
5.BeanPostProcessor:对前面所生成的对象进行加工 进行AOP生产代理对象
6.从二级缓存里面去拿AOP之后的代理对象
7.单例池(singletonobjects,beanName:bean对象) 另外AService
构造BService对应的bean的过程:
1.BeanDefinition
2.bService = new BService(); //原始对象-->map
3.bService填充属性a-一>三级缓存找AService-->1ambda表达式--->执行--->AOP之后的代理对象--->二级缓存
4.Aware,init
5.BeanPostProcessor:对前面所生成的对象进行加工
6.单例池(singletonObjects,beanName:bean对象)
1ambda表达式
()->getEarlyBeanReference(beanName,mbd,bean原始对象)