上一篇分析了spring boot 启动时,初始化监听器,下面来看一下构造容器环境,也就是调用下面prepareEvent方法实现
二、准备容器环境prepareEnvironment
直接看getOrCreateEnvironment方法,获取环境environment
根据类型不同,分别返回以上不同的environment
2.创建好环境environment后,要对环境进行configure
2.1 对属性来源进行配置 ,调用configurePropertySources
2.1.1 加入默认属性defaultProperties
2.1.2 判断入参命令行属性,如果在environment的属性中已经存在,就替换;如果不存在就addLast,添加
2.2 对profile进行配置,获取激活的profiles,然后填充到environment
3. 对所有SpringApplicationRunListener 监听器,触发对事件event的监听,也就是系统初始化完成的事件
4.调用bindToSpringApplication,把environment绑定到SpringApplication,本质是绑定属性bindProperty