1、ConfigurableEnvironment 环境创建跟踪源码可以看出对于web服务最终创建的是 ApplicationServletEnvironment以下是ApplicationServletEnvironment 类的结构图。2、配置环境让我们继续看看在环境对象创建好后配置环境具体做了哪些事情。设置转换服务ApplicationConversionService添加命令行参数keycommandLineArgsattach(environment)目的将创建ApplicationServletEnvironment时默认构建的MutablePropertySources包装成SpringConfigurationPropertySources同时将PropertySource包装成ConfigurationPropertySourcesPropertySource以支持ConfigurationProperties注解类型的属性源的解析。第二就是将增强后的属性源放到属性源列表的最前面以便让其优先工作。注意这里增加解析还得结合ConfigurationPropertiesBindingPostProcessor实现去看3、执行SpringApplicationRunListener.environmentPrepared通过SimpleApplicationEventMulticaster多播执行实现了ApplicationListener接口实现类的onApplicationEvent方法。应用事件类型为ApplicationEnvironmentPreparedEvent。主要用于在环境准备好之后、上下文创建之前处理的一些需要的操作。4、继续配置环境defaultProperties 配置属性移到最后将环境绑定到 SpringApplication按WebApplicationType类型进行环境转换再次attach确保让增强的属性源优先工作注spring boot 版本为3.2.3