一、Spring执行流程![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/74adcaa8bf04bb1fe983234675fdfc88.png)
对象创建过程:
二、Spring 接口
三、接口介绍
3.1 BeanFactory
BeanFactory,Bean 工厂,整个 IoC 容器的根接口,也是容器的入口,定义了获取 bean 及 bean 的各种属性。
3.2 Aware
当 Spring 容器创建的 bean 对象在进行具体操作的时候,如果需要容器的其他对象,此时可以将对象实现 Aware 接口。实现 Aware 接口可以获取到 Spring 容器。
3.3 BeanDefinitionReader
用于读取配置文件,将元素加载到BeanDefinition
3.4 BeanDefinitionRegistry
BeanDefinitionRegistry 接口继承自 AliasRegistry 接口。该接口是 Spring bean 工厂中唯一一个用于封装 BeanDefinition 信息的接口。
该接口主要有以下几个功能:
- 以Map<String, BeanDefinition>的形式注册bean
- 根据 beanName 删除
- 根据 beanName 获取 beanDefiniation
- 获取容器中 beanDefiniation 的数量
- 根据 beanName 判断容器中是否包含beanDefiniation
3.5 BeanFactoryPostProcessor
PostProcessor:后置处理器(增强器)
通过实现 BeanFactoryPostProcessor 接口,Spring 容器可以任意修改所有未实例化的 bean 的配置信息,即 BeanDefinition。
3.6 BeanPostProcessor
主要用于增强 bean 的信息,注意此时 bean 已经实例化。
主要有以下两个方法:
一个用于在 bean 初始化前执行,一个用于在 bean 初始化之后执行。
3.7 Environment
用来表示整个应用运行时的环境
3.8 FactoryBean
是一种特殊的 bean,通过调用 getObject 就可以返回具体的对象,整个对象的创建过程都是由用户自己来控制的,更加灵活。