Spring - Bean生命周期与扩展机制

1,Spring Bean生命周期

1)生命周期4个阶段实例化->属性赋值->初始化->销毁
doCreateBean完成:实例化、属性赋值、初始化

image.png

2)Bean销毁阶段容器关闭时调用
image.png

3)Bean的实例化
使用反射创建bean对象
image.png

4)Bean的属性赋值
image.png

image.png

5)Bean的初始化
image.png

image.png

2,Spring扩展点

1)BeanPostProcessor切入到多个Bean的生命周期中,如自动注入和AOP等实现
Spring提前初始化所有的BeanPostProcesser 根据PriorityOrdered和Ordered控制顺序

image.png

InstantiationAwareBeanPostProcessor在bean实例化前后增加处理
image.png

2)Aware接口如果bean实现了Aware接口,则可以从spring容器中获取对应的资源
BeanNameAware:回调setBeanName方法,获取bean的名称
BeanClassLoaderAware:回调setBeanClassLoader方法,获取bean的ClassLoader
BeanFactoryAware:回调setBeanFactory方法,获取BeanFactory容器
EnvironmentAware:用于获取Environment
ApplicationContextAware:用于获取ApplicationContext应用上下文
3)InitializingBean
Spring会在bean初始化时调用init方法
image.png

调用实现InitializingBean的afterPropertiesSet方法
image.png

调用使用xml配置init-method="init"或者使用@PostConstruct指定方法

3,生命周期过程图

Spring Bean实例化、属性赋值、初始化过程

image.png

你可能感兴趣的:(Spring - Bean生命周期与扩展机制)