Spring之Aware
2019-06-26 本文已影响0人
那谁319
Aware
-
Aware提供了一种让用户实现了Aware接口的自定义bean能够感知到被spring管理的资源的能力。
-
Spring 框架本身提供的可以感知的资源列表如下图,实现这些接口的bean就可以感知到对应的资源信息,这些Aware接口的实现类都会在bean生命周期内把相应的Spring资源传递对应的bean。
image.png -
比如实现了ApplicationContextAware接口的bean在执行setApplicationContext方法时就可以拿到ApplicationContext的信息。
-
Spring 容器初始化时的执行链有这么一部分
-
1、refresh方法内部执行prepareBeanFactory方法
image.png -
2、prepareBeanFactory方法内部添加了ApplicationContextAwareProcessor类
image.png -
ApplicationContextAwareProcessor的类图关系
image.png -
ApplicationContextAwareProcessor实现了接口BeanPostProcessor,我们知道实现了BeanPostProcessor接口的bean 在对象创建前后会执行postProcessBeforeInitialization和postProcessAfterInitialization,看下ApplicationContextAwareProcessor的postProcessBeforeInitialization的实现逻辑
image.png