1、学习Spring源码的意义???
面试
可以学习源码设计理念、设计模式
对外扩展接口
IOC类似于 注册中心 需要什么去里面取 所有bean都注册进去
如何注册成为bean: 通过类、xml配置、@注解、javaconfig
xml加载 ClassPathXmlApplicationContext
javaconfig 加载 AnnotationConfigApplicationContext
BeanFactory ApplicationContext
Spring怎么解决循环依赖的:通过三级缓存 3个map(DefaultSingletonBeanRegistry)2几缓存行不行,用三级缓存责任明确 三级缓存是用函数接口 利用aop
获取bean是从一级缓存获取
扩展接口:BeanFactoryPostProcessor修改bean定义
BeanPostProcessor干预bean生产过程
bean后置处理器里面创建Aop (JDK、CGLIB)