这一章主要写创建并准备Enviroment,依然是进入到SpringApplication类下面的run方法中。咱们看一下代码
//args参数不用解释了
ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);
//准备系统参数,主要看prepareEnviroment干了些啥。
ConfigurableEnvironment environment = prepareEnvironment(listeners,applicationArguments);
进入到prepareEnvironment方法中,代码如下
private ConfigurableEnvironment prepareEnvironment(
SpringApplicationRunListeners listeners,
ApplicationArguments applicationArguments) {
// Create and configure the environment
//获取或者创建环境参数,主要看的重点之一。
ConfigurableEnvironment environment = getOrCreateEnvironment();
configureEnvironment(environment, applicationArguments.getSourceArgs());
//通知咱们spring.factories里添加的listener加载application配置文件。
//主要干活的listener是ConfigFileApplicationListener。
//虽然其余几个也会运行,不过都是掩护大哥的小弟。
listeners.environmentPrepared(environment);
//将获取到的environment中的spring.main配置绑定到SpringApplication的source中。
bindToSpringApplication(environment);
if (this.webApplicationType == WebApplicationType.NONE) {
environment = new EnvironmentConverter(getClassLoader())
.convertToStandardEnvironmentIfNecessary(environment);
}
ConfigurationPro