前言
前面的文章都采用markdown编写的,但编辑图片上极其不方便,以后还是采用网页的形式。
上一篇中讲述了spring boot配置文件的使用,本篇开始从源码的角度来看看配置文件。
环境(Environment)
学习过spring的同学都清楚,在bean中注入Enviroment实例即可调用配置资源信息,如以下代码
package com.lkl.springboot.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
/**
* 注入enviroment
*
* @author liaokailin
* @version $Id: DIEnviroment.java, v 0.1 2015年10月2日 下午9:17:19 liaokailin Exp $
*/
@Component
public class DIEnviroment {
@Autowired
Environment environment;
public String getProValueFromEnviroment(String key) {
return environment.getProperty(key);
}
}
spring boot是如何来构建环境??
来看
SpringApplication.run(String... args)中的代码
// Create and configure the environment
ConfigurableEnvironment environment = getOrCreateEnvironment();
<p class="p1"><span class="s1">private</span> ConfigurableEnvironment getOrCreateEnvironment() {</p><p class="p1"><span> </span><span> </span><span class="s1">if</span> (<span class="s1">this</span>.<span class="s2">environment</span> != <span class="s1">null</span>) {</p><p class="p2"><span class="s3"><span> </span><span> </span><span> </span></span><span class="s1">return</span><span class="s3"> </span><span class="s1">this</span><span class="s3">.</span>environment<span class="s3">;</span></p><p class="p1"><span> </span><span> </span>}</p><p class="p2"><span class="s3"><span> </span><span> </span></span><span class="s1">if</span><span class="s3"> (</span><span class="s1">this</span><span class="s3">.</span>webEnvironment<span class="s3">) {</span></p><p class="p1"><span> </span><span> </span><span> </span><span class="s1">return</span> <span class="s1">new</span> StandardServletEnvironment();</p><p class="p1"><span> </span><span> </span>}</p><p class="p1"><span> </span><span> </span><span class="s1">return</span> <span class="s1">new</span> StandardEnvironment();</p><p class=