一 概述
- IoC核心接口
- bean加载过程解析
- bean初始化过程解析
二 内容详情
2.1 IoC核心接口
2.1.1 BeanFactory
1 2 3 4 5 6 7 8 9 10 11 12
| 1-作用: 提供bean的基本操作
2-bean的获取: -1-按名称获取 -2-按类型获取
3-bean的操作 -1-是否存在 -2-是否单例 -3-类型获取 -4-类型检测(类型是否匹配) -5-别名获取
|
2.1.2 BeanFactory几个子类
1-HierachicalBeanFactory
1 2
| 1-作用: 提供bean分层结构,提出父子容器概念 3-操作:1-获取本地bean
|
2-AutowireCapableBeanFactory
1 2 3 4 5 6 7 8
| 1-作用: 提供bean自动封装功能
2-bean创建
3-自动封装 -1-装配方式 -2-前置动作 -3-后置动作
|
3-ListableBeanFactory
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 1-作用: 提供容器内部遍历搜索bean的功能
2-容器中bean的信息 -1-bean存在性 -2-bean的数量 -3-bean的类型
3-bean相关信息获取 -1-由类型获取bean的名称 -2-由注解获取bean的名称
4-bean信息获取 -1-bean的注解 -2-bean的定义名称
|
2.2 bean加载过程解析
2.2.1 组件扫描器
1-说明:
1
| 开发过程中,根据需要加载必要的bean,排除指定bean
|
2-设定组件扫描加载过滤器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 1-名称: @ComponentScan 2-类型: 类注解 3-位置: 类定义上方 4-作用: 设置spring配置加载类扫描规范 5-示例: -1-示例:@ComponentScan(value="com.example") excludeFilters=@ComponentScan.Filter(type=xxx,classes=xxx) -2-参数:1-includeFilters: 设置包含性过滤器、2-excludeFilters: 设置排除性过滤器、3-type: 设置过滤器类型 -3-过滤策略:1-Annotation、2-Assignable_type、3-aspectj、4-regex、5-cutom 6-自定义组件过滤 -1-名称: TypeFilter -2-类型: 接口 -3-位置: 自定义类型过滤器 -5-示例:public class MyTypeFilter implements TypeFilter{} 7-应用场景 -1-数据层接口测试环境 -2-业务层接口测试环境 -3-各种运行环境设置
|
2.2.2 自定义导入器
1-导入器相关
1 2 3 4 5
| 1-bean只有通过配置才可以进入spring容器,被spring加载并控制 2-配置bean的方式 -1-xml文件中使用<bean />标签配置 -2-使用@Component及衍生注解配置 3-企业开发中,需要配置大量bean,需要高效配置bean的方式
|
2-自定义导入器
1 2 3 4 5 6
| 1-名称: ImportSelector 2-类型: 接口 3-位置: 自定义bean导入器 4-示例: -public class MyImportSelector implements ImportSelector{} -@Import(MyImportSelector.class) public class SpringConfig{}
|
3-自定义注册器
1 2 3 4
| 1-名称: ImportBeanDefinitionRegistrar 2-类型: 接口 3-作用: 自定义bean定义注册器 4-示例:public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar{}
|
2.3 bean初始化过程解析
1-初始化过程解析
1 2 3 4 5 6 7 8 9 10 11
| 1-BeanFactoryPostProcessor -1-作用: 定义在bean工厂对象创建后, bean创建前动作, 对创建后业务处理 -2-运行时机: 用于对工厂进行处理, 仅运行一次
2-BeanPostPrcesso -1-作用: 定义所有bean初始化前后进行的统一动作, 创建前+创建后 -2-运行时机: 当前操作伴随每个bean的创建过程,每次创建bean都运行
3-InitializingBean -1-作用: 用于对bean进行创建前业务处理 -2-运行时机: 当前操作伴随每个bean的创建过程
|
2-FactoryBean
1 2 3 4
| 1-作用: 对单一的bean初始化过程封装,达到简化配置的目的 2-FactoryBean与BeanFactory区别 -1-FactoryBean: 封装单个bean的创建过程 2-BeanFactory: Spring容器顶层接口,定义了bean相关获取操作
|
三 思维导图
