购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.10 ConfigFileApplicationContextInitializer分析

本节将对ConfigFileApplicationContextInitializer进行分析,关于该对象的基础定义代码如下:

@Deprecated
public class ConfigFileApplicationContextInitializer
      implements ApplicationContextInitializer<ConfigurableApplicationContext> {}

从ConfigFileApplicationContextInitializer的基础定义可以发现这是一个会被废弃的对象,虽然该对象会被废弃但是本节还会对它进行分析。该对象只实现了ApplicationContext-Initializer,具体的处理方法如下:

public void initialize(ConfigurableApplicationContext applicationContext) {
   new org.springframework.boot.context.config.ConfigFileApplicationListener() {
      public void apply() {
         addPropertySources(applicationContext.getEnvironment(), applicationContext);
         addPostProcessors(applicationContext);
      }
   }.apply();
}

在这段代码中主要是为了执行ConfigFileApplicationListener的apply方法,具体处理流程如下:

(1)添加属性源,本处添加的属性源从应用上下文中获取环境变量;

(2)添加后置处理器,本处所添加的后置处理器具体类型是PropertySourceOrderingPostProcessor。

在PropertySourceOrderingPostProcessor中关于后置处理器的处理代码如下:

    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
throws BeansException {
        reorderSources(this.context.getEnvironment());
    }
    private void reorderSources(ConfigurableEnvironment environment) {
        DefaultPropertiesPropertySource.moveToEnd(environment);
    }

在这段处理代码中将指定的环境对象移到了最后一个元素位。 afV6kuE6iWN4zrDU8fMBWLZo8rCW98E1UHZNa/M9tFubQRCvhxuhvH9BRasyzEL2

点击中间区域
呼出菜单
上一章
目录
下一章
×