spring容器初始化
2021-07-23 11:47:49 18 举报
spring容器初始化原理,克隆给个点赞就行哈
作者其他创作
大纲/内容
执行BeanFactoryPostProcessor的postProcessBeanFactory
PropertiesBeanDefinitionReader
容器初始化完成,执行正常调用,销毁容器
实例化BeanPostProcessor实现类
XmlBeanDefinitionReader
读取 Spring 配置文件中的内容,将其转换为 IoC 容器内部的数据结构:BeanDefinition
BeanFactoryPostProcessor
调用DiposibleBean的destroy方法
执行Bean的构造器
实例化InstantiationAwareBeanPostProcessor的实现类
调用Bean的init-method属性指定的初始化方法
填充属性
初始化bean,调用init方法
实例化
执行InstantiationAwareBeanPostProcessor的postProcessPropertyValues
完整的bean对象
调用Bean的destroy-method属性指定的销毁方法
为Bean注入属性
执行BeanPostProcessor的postProcessAfterInitialization方法
GroovyBeanDefinitionReader
调用InitializingBean的afterPropertiesSet方法
实例化BeanFactoryPostProcessor的实现类
BeanPostProcessor:after
bean定义信息,BeanDefinition
BeanPostProcessor:before
调用BeanNameAware的setBeanName方法
ioc Container
执行InstantiationAwareBeanPostProcessor的postProcessBeforeInstantiation
AbstractBeanDefinitionReader实现了 EnvironmentCapable,提供了获取设置环境的方法。定义了一些通用方法,使用策略模式,将一些具体方法放到子类实现
BeanFactoryPostProcessor是在spring容器加载了bean的定义文件之后,在bean实例化之前执行的,可以修改bean的属性,同时配置多个BeanFactoryPostProcessor,并通过设置'order'属性来控制各个BeanFactoryPostProcessor的执行次序
BeanDefinitionReader定义读取配置文件的规范
BeanFactory通过反射进行实例化bean
执行BeanPostProcessor的postProcessBeforeInitialization方法
执行InstantiationAwareBeanPostProcessor的postProcessAfterInstantiation
反射
Bean的生命周期
调用BeanNameAware的setBeanFactory方法
收藏
0 条评论
下一页