1. 前言
核心类代表了Spring框架中最基本的组件和功能,通过介绍这些类,学习者可以更好地理解Spring框架的核心工作原理和关键组件之间的关系。同时,了解这些核心类有助于学习者深入掌握Spring框架的使用和扩展方法。
2. ApplicationContextInitializer
ApplicationContextInitializer用于IOC创建完成后自动调用其中的initialize类,作用:可以给context上下文注入一些环境属性。
上下文指的是应用程序的运行环境、配置信息、依赖关系等内容。
3.ApplicationListener
ApplicationListener就是一个监听器,其中的参数event可以通过类型判断是什么类型时间触发的,按照你进行指定的逻辑即可。
4. BeanFactory
BeanFactory用于Bean对象的管理,比如创建、配置、依赖注入功能。
实现类DefaultListableBeanFactory:bean的创建配置都会被委托到这个对象。(实际干活的)
5. BeanDefinition
BeanDefinition封装了Bean的所有属性信息。
当 Spring 容器启动时,会读取配置文件或者扫描注解,解析出各个 Bean 的配置信息,并将其封装成对应的 BeanDefinition 对象。Spring 容器根据 BeanDefinition 中的信息,实例化、初始化和配置 Bean 对象,然后将其放入容器中管理。
5.1 继承体系
5.2 BeanDefinitionMap
BeanDefinitionMap是:管理应用程序中所有Bean的定义,包括Bean的名称、类型、作用域、依赖关系等元数据信息。
- 键:bean对象的名称
- 值:BeanDefinition的对象
6. BeanFactoryPostProcessor
BeanFactoryPostProcessor主要用于给bean工厂新增BeanDefinition,有了这个BeanDefinition后bean工厂就会帮我们自动创建一些bean对象。
BeanFactoryPostProcessor 的生命周期位于:Bean工厂实例化完毕,但bean还没有初始化
一些常用的实现类,也是一些约定大于配置的原因
7. Aware
Aware是一种接口,它允许Bean意识到其所在的环境。这个接口被设计为在Bean实例化后,Spring容器通过回调相应的Aware接口方法来提供一些特定的信息给Bean。
Bean工厂在去实例化Bean的时候,会检测你有没有实现Aware接口,如果你实现了,我就回调你实现的方法。
8. InitializingBean/DisposableBean
两个生命周期接口:
- InitializingBean是Bean初始化的方法
- DisposableBean是销毁Bean的方法
9. BeanPostProcessor
BeanPostProcessor是Bean对象的后置处理器,生命周期在Bean对象初始化前后
常用的实现类: