问题:自定义组件想要使用Spring容器底层的组件(ApplicationContext, BeanFactory)等
自定义组件实现xxxAware, 在创建对象的时候, 会调用接口规定的方法注入到相关组件:Aware
先来看一段代码:
CTRL+SHIFT+T 找到Aware
使用ApplicationContextAware接口为例, 实现接口
1, 新建Light.java类, 实现ApplicaitonContextAware接口
2,实现BeanNameAware接口
3,实现EmbeddedValueResolverAware接口
总结:
把Spring底层的组件可以注入到自定义的bean中,ApplicationContextAware是利用ApplicationContextAwareProcessor来处理的, 其它XXXAware也类似, 都有相关的Processor来处理, 其实就是后置处理器来处理;
XXXAware---->功能使用了XXXProcessor来处理的, 这就是后置处理器的作用;
ApplicaitonContextAware--->ApplicationContextProcessor后置处理器来处理的(前面分析过源码)