Environment中Aware接口实现原理分析:在Spring5.3.3+Java8项目中,如果某些Bean需要使用ApplicationContext、Environment、BeanFactory等对象,我们会实现相关的Aware接口对象,然后它们可以直接使用对应的对象就是now,今天开始说说它的实现原理。);}}入口函数:publicstaticvoidmain(String[]args){AnnotationConfigApplicationContextctx=newAnnotationConfigApplicationContext("com.pack");ctx.getBean(BeanAware.class);ctx.close();}如上,只要实现对应的*Aware接口,可以使用对应的接口对象。我们先看一下Aware接口的层次结构:然后我们看AnnotationConfigApplicationContext的父类AbstractApplicationContext。在父类中,有如下几个方法:上面选择的一个是处理Aware相关接口类的。查看这个类ApplicationContextAwareProcessorimplementsBeanPostProcessor这个类是一个Bean后处理器,在bean实例化和依赖注入之后,任何初始化代码(比如配置文件中的init-method)调用之前,初始化代码调用之后调用。在初始化前的方法中首先检查Bean是否是响应Aware接口的子类,如果不是直接返回;否则,进入invokeAwareInterfaces方法,你应该知道这里Aware的底层原理!完成的!!!
