我是靠谱客的博主 漂亮牛排,这篇文章主要介绍【spring设计思想】第2集Environment解析,现在分享给大家,希望可以做个参考。

从Spring启动我们知道,第一件做的事情就是--创建环境--Environment

查看代码知道:

复制代码
1
2
interface Environment extends PropertyResolver{
复制代码
1
2
3
4
5
String[] getActiveProfiles(); String[] getDefaultProfiles(); boolean acceptsProfiles(String... var1);

}

复制代码
1
Environment接口的方法是获取当前激活的Profiles和默认的Profiles,得知当前激活的切面。

我们再看 PropertyResolver

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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实例:

复制代码
1
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解析内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部