本节将对ConfigDataEnvironment进行分析,该对象围绕可导入的配置数据进行处理,主要将外部配置信息进行读取。下面对ConfigDataEnvironment成员变量进行介绍,详见表5-6。
表5-6 ConfigDataEnvironment成员变量
在ConfigDataEnvironment中还有三个静态变量,它们分别是:
(1)LOCATION_PROPERTY;
(2)ADDITIONAL_LOCATION_PROPERTY;
(3)IMPORT_PROPERTY。
这三个静态变量都有可能从命令行提供,提供后会转换成环境对象提供者(ConfigDataEnvironmentContributor),关于这三个变量的转换过程具体代码如下:
private List<ConfigDataEnvironmentContributor> getInitialImportContributors(Binder binder) { List<ConfigDataEnvironmentContributor> initialContributors = new ArrayList<>(); addInitialImportContributors(initialContributors, bindLocations(binder, IMPORT_PROPERTY, EMPTY_LOCATIONS)); addInitialImportContributors(initialContributors, bindLocations(binder, ADDITIONAL_LOCATION_PROPERTY, EMPTY_LOCATIONS)); addInitialImportContributors(initialContributors, bindLocations(binder, LOCATION_PROPERTY, DEFAULT_SEARCH_LOCATIONS)); return initialContributors; }
在ConfigDataEnvironment中最关键的对外提供的方法是processAndApply,该方法将处理所有环境数据贡献者,将数据导入环境对象(Environment)中。该方法的详细代码如下: