Spring生命周期,完整流程
2021-10-09 09:53:07 0 举报
Spring生命周期,完整流程
作者其他创作
大纲/内容
解析xml
BeanFactory和FactoryBean的区别?
BeanFactoryBean工厂,整个容器的根接口,也是容器的入口俩个子接口:ListableBeanFactoryConfigurableBeanFactory
BeanPostProcessor:After
我们自定义的对象
实例化
scope作用域
context.getBean()
Map(根据key来获取值,所以使用map,比较灵活)
BeanFactoryPostProcessor
BeanPostProcessor
properties
System.getProperties()
填充属性
session
getObject
普通对象
isSingleton
FactoryBean
执行init-method
封装BeanDefinition
init-method
在不同的阶段要处理不同的工作们应该怎么办?观察者模式:监听器,监听事件,多播器(广播器)
SpringBean
类名.Class
完整对象
容器对象
都是用来创建对象的当使用BeanFactory的时候必须要遵循完整的创建过程,这个过程是由spring来管理控制的而使用FactoryBean只需要调用getObject就可以返回具体的对象,整个对象的创建过程是由用户自己来控制的,更加灵活
getObjectType
加载xml
BeanDefinition
AOP
prototype
给属性设置值
IOC是个思想 DI是思想落地
PostProcessor
为什么不用new,用反射?1、new不灵活2、new只能用默认构造器,比较死板反射可以获取到对象的所有东西
request
Class.forName
bean对象
Aware接口到底有什么作用?当spring容器创建的bean对象在进行具体操作的时候,如果需要容器的其他对象,此时可以将对象实现Aware接口,来满足当前的需要
System.getEnv()
初始化
yaml
Aware
IOC容器
StandardEnvironment
对象的属性值都是默认值
容器
IOC
修改/增强beanDefinition信息
执行初始化方法
XML
接口
定义规范,方便扩展
设置aware接口的属性
后置处理器增强器
singleton
BeanDifinitionReader
在容器创建过程中需要动态改变bean的信息<property name = url value = ${jdbc.url}>
K:String V:ObjectK:Class V:
修改/增强bean信息
BeanFactory
创建对象
Spring
Constructor ctor = Class.getConstructor();获取构造器Object obj = ctor.newInstance();
从容器中获取
Bean定义信息
IOC控制反转
Environment
放到容器中
在堆中开辟一块空间
Class
内置对象
BeanPostProcessor:Before
BeanDifinition
DI依赖注入
populate
BeanDefinitionReader
反射
收藏
0 条评论
下一页