Bean生命周期
2020-11-11 22:33:24 0 举报
Spring Bean生命周期
作者其他创作
大纲/内容
ResourceLoader
开启Bean的实例化过程
单例的缓存在IOC容器中
调用destory-method方法
实例化Bean
调用BeanNameAware接口的setBeanName方法
容器销毁
BeanFactoryPsotProcessorpostProcessorAfterInstantation
注册完这个还不能用,还没有依赖注入
试图获取Bean
Bean的初始化
BeanWrapper结合BeanDefinition进行属性注入
BeanDifinition
销毁Bean
此时Bean已经实例化了,可以使用了,该有的属性都有了,开始初始化过程
BeanDefinition容器
Bean实例 三级缓存解决循环应用的核心SingletonObjectsearlySingeletonObjectsSingletonFactories
Bean的解析
BeanDefinition
Bean
读取
配置XML或注解
Resource资源抽象
多例的直接返回
BeanPostProcessor给你一个机会返回代理这就是Aop和事务的核心
回调Bean实现的aware接口
end
调用BeanNameAware接口的setBeanFactory方法
BeanDefinitionReader
回调之前注册的DisposableBean的afterPropertiesSet方法
BeanDifinitionRegisterBeanFactory
回调Bean实现的initializingBean和init-method
读取资源
容器关闭,开始销毁Bean
将资源解析为Bean定义对象
缓存中有直接取
缓存中没有
初始化Bean
BeanPostProcessor对Bean的前置处理(before)beanPostBeforeInitilzation
开启Bean的初始化
获取Bean
调用ApplicationContextAware接口的setApplicationContext方法
BeanFactoryPsotProcessorpostProcessorBeforeInstantation
BeanDifinition封装了类的定义是否单例?是否懒加载?
封装
spring启动
加工BeanDefinition
BeanPostProcessor对Bean的后置处理(after)beanPostAfterInitilzation注册DisposableBean和destory-method方法
0 条评论
下一页