概述
从Spring启动我们知道,第一件做的事情就是--创建环境--Environment
查看代码知道:
interface Environment extends PropertyResolver{
String[] getActiveProfiles();
String[] getDefaultProfiles();
boolean acceptsProfiles(String... var1);
}
Environment接口的方法是获取当前激活的Profiles和默认的Profiles,得知当前激活的切面。
我们再看 PropertyResolver
public interface PropertyResolver {
boolean containsProperty(String var1);
@Nullable
String getProperty(String var1);
String getProperty(String var1, String var2);
@Nullable
<T> T getProperty(String var1, Class<T> var2);
<T> T getProperty(String var1, Class<T> var2, T var3);
String getRequiredProperty(String var1) throws IllegalStateException;
<T> T getRequiredProperty(String var1, Class<T> var2) throws IllegalStateException;
String resolvePlaceholders(String var1);
String resolveRequiredPlaceholders(String var1) throws IllegalArgumentException;
}
PropertyResolver的行为一:String getProperty(String var1)获取某个属性的值,第二个重点就是:String resolvePlaceholders(String var1);用配置的属性替换掉 ${}占位符
那我们看Spring启动时的Environment实例:
return (ConfigurableEnvironment)(this.webApplicationType == WebApplicationType.SERVLET ? new StandardServletEnvironment() : new StandardEnvironment());
在容器中启动是StandardServletEnvironment,main方法启动是StandardEnvironment;
其实呢,StandardServletEnvironment继承了StandardEnvironment,多了ServletConfig和ServletContext两个PropetySource。
而StandardEnvironment 本身就集合了System.getProperties() 和System.getEnv();
这样我们可以明白,在启动的时候我们会新建一个StandardServletEnvironment的环境实例,里面有我们的System配置和Servlet配置。
最后
以上就是漂亮牛排为你收集整理的【spring设计思想】第2集Environment解析的全部内容,希望文章能够帮你解决【spring设计思想】第2集Environment解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复