27+SpringBean生命周期
2022-01-16 00:39:52 3 举报
登录查看完整内容
27+SpringBean生命周期
作者其他创作
大纲/内容
postProcessAfterInitialization
广播容器关闭事件
配置式注入 BeanDefinition
Lifecycle的触发时机
借助 BeanDefinitionRegistryPostProcessor 注入
Bean的实例化
销毁所有 bean
缓存问题
bean标签
一般实现 Lifecycle 的 start 方法多用于建立连接、加载资源等等操作,以备程序的运行期使用。
InstantiationAwareBeanPostProcessor
Lifecycle
注册新的 Bean 的定义信息
Bean
初始化方法回调
@Configuration + @Bean
编程式注入 BeanDefinition
factoryBean怎么处理
InstantiationAwareBeanPostProcessor
@Import
BeanFactoryPostProcessor#postProcessBeanFactory
拦截Bean的属性注入和自动装配
合并BeanDefinition
使用。。。
创建完成
负责
ImportBeanDefinitionRegistrar
手动构造 BeanDefinition 注入
1、要么是解析了配置文件2、要么是解析了配置类3、要么有人编程式的注入了 BeanDefinition
BeanDefinitionRegistryPostProcessor
声明式注入 BeanDefinition
refresh 方法的 try 块最后一行:finishRefresh ,它在里面会找出所有实现了 Lifecycle 接口的 bean ,并调用它们的 start 方法
标记本身为不可用,
拦截并替换Bean的默认实例化动作
BeanDefinitionRegistryPostProcessor 的执行时机比 BeanFactoryPostProcessor 更早。
销毁
通知所有实现了 Lifecycle 的 bean 回调 close 方法
@Component + @ComponentScan
1、@PostConstruct2、InitializingBean3、initMethod
初始化IOC容器
关闭 BeanFactory
属性赋值组件自动注入
解析配置文件加载配置类注册BeanDefinition
postProcessBeforeInitialization
收藏
0 条评论
回复 删除
下一页