1.AOP
AOP 即 Aspect Oriented Program 面向切面编程.
快速横向扩展是Spring的核心,不再new,而使用反射以实现其扩展性。
我们创建对象的过程是New->工厂->容器。
定义Bean后可以通过xml,注解,配置类的方式进行调用
存储bean和实例化对象。保存在 container里,map存储。
涉及到的关键接口
1.BeanDefinitionRegistry 注册信息
2.BeanDefinitionReader 父类的接口 原始bean->容器里
3.BeanPostProcessor,BeanFactoryPostProcessor
4.BeanFactory,FactoryBean
5.environment,监听器
2.创建bean ->容器实例
2.1创建过程
用的是反射而不是new,不是直接创建,而是要经过对象工厂。
2.2 对象工厂BeanFactory
1.根接口访问容器 root interface
2.有两个接口 :ListableBeanFactory, 监听
ConfigurableBeaFactory,配置
2.3 后置处理器,增强类
bean->...->对象工厂->...实例
BeanPostProcessor 已经实例化了 往实例化中加点东西。
BeanFactoryPostProcessor 类->实例化 往原始bean中加点东西 是否需要?
bean 有一个标准的生命周期的顺序。
增强的是什么? 对象的方法上,PostProcesser。比如在某个bean中加个打印日志功能。
spring boot 从哪入口? beanfactoryPostProcesser。
2.4.容器里的bean信息需要传输到 对象工厂中
注册BeanDefinitionRegistry
2. 5.BeanFactory - FactoryBean
BeanFactory :标准化的类 。
FactoryBean:非标准化的,个性化的。 比如:spring clound Feign
2.6Environment和 监听器(观察者模式)
是底层的服务支撑,不是必备。
reflush 是最重要的一个方法。