Bean的生命周期
2023-03-21 11:39:26 1 举报
Spring Bean的生命周期
作者其他创作
大纲/内容
执行invokeInitMethods
使用
执行BeanFactoryProcessor
执行BeanPostProcessor的前置方法
开始
如AutowiredAnnotationBeanPostProcessor类实现了该类,处理使用注解(@Autowired、@Value等)的属性填充
DefaultSingletonBeanRegistry类中保存了Bean的注销方法1. 先执行实现了DisposableBean接口的销毁方法【destroy()方法】2. 在执行XML中配置的destroyMethod方法(反射调用)
注册BeanDefinition
实例化后处理的一些事情
执行BeanPostProcessor的后置方法
InstantiationAwareBeanPostProcessor
根据实例化策略实列化Bean(JDK/Cglib)
ApplicationContextAwareProcessor实现了前置方法,主要处理setApplicationContext
registerShutdownHook-->close()
初始化之后
销毁
注解属性填充
实例化(Instantiate)Bean
1.BeanFactoryAware2.BeanNameAware3.BeanClassLoaderAware
感知标记性接口(Aware)
执行applyPropertyValues方法
初始化(Initialize)Bean
注册BeanPostProcesor
BeanFactoryPostProcessor
执行Bean的初始化方法
从BeanDefinition填充属性
InstantiationStrategy
执行实现BeanFactoryPostProcessor接口的方法BD注册后,在Bean未实例化之前,修改对象的定义信息,也就是修改BD
BeanPostProcessor
1. 调用实现了InitializingBean接口的类的afterPropertiesSet()初始化方法2. 调用在XML中配置的initMethod方法(反射调用)
加载XML/扫描CLASS
初始化之前
如PropertyPlaceholderConfigurer类实现了该类,处理使用占位符的流程span style=\"font-size: inherit;\
容器启动完毕注册了钩子方法,在JVM关闭的时候调用容器close()方法
Aware接口赋值
加载
初始化
DefaultAdvisorAutoProxyCreator实现了后置方法,主要处理AOP代理的创建
实例化
0 条评论
下一页