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

概述

从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解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部