Spring架构设计
2021-08-11 09:38:06 0 举报
Spring架构设计,Spring容器的初始化过程详细介绍,前置/后置处理器的使用
作者其他创作
大纲/内容
如果想在容器不同的阶段做不同的事情,那么怎么处理?监听器Listener,观察者模式
抽象层
XML
Spring容器对象
对象工厂:
Environment
1
12
A、是否允许覆盖BeanDefinition;B、是否允许循环依赖;
3
6
...
对Bean进行扩展
实例化的对象普通对象
备注:1、BeanFactory做了什么事?读取Bean的定义信息,通过反射,并经过一系列的BeanPostProcessor对Bean进行实例化;2、第9步骤备注,在BeanFactory调用之前做扩展,Bean信息到<实例化的对象>这步骤不是实际直接调用,用虚线箭头;3、核心知识:Bean生命周期,循环依赖、三级缓存、IOC、AOP;
7
(在Bean定义信息加载完成,bean未被实例化之前获取bean的定义即配置元数据,然后根据需要进行更改。此处扩展可类似自定义bean的定义。重载它,重新生成BeanDefinition则生成的bean使用的是重新生成BeanDefinition,执行完该方法Spring才完成扫描)
Map<String,BeanDefinition> map = new ConCurrentHashMap<String,BeanDefinition>();
配置类
10
生成一些在增强型Bean,不是“模板标准”的对象
Bean的定义信息
8
9
BeanFactory
Object obj = Class.newInstance();
IOC容器
properties等配置信息。默认实现:StandardEnvironment加载环境以及配置信息
Bean信息
FactoryBean
BeanFatoryPostProcessor
11
BeanPostProcessor
5
4
读取Bean的配置信息,如果发现需要人为再进行修改,可在此处进行扩展。此处扩展Bean的配置信息,前面那个扩展Bean。
Annotation
2
逆波兰式PropertySourcesPlaceholderConfigurer.java
BeanDefinitionReader
收藏
0 条评论
下一页