欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Spring之底层架构核心概念Environment及用法详解,

来源: javaer 分享于  点击 19934 次 点评:201

Spring之底层架构核心概念Environment及用法详解,


目录
  • 1.Environment作用
  • 2.用法
    • 2.1 systemEnvironment 和 systemProperties
    • 2.2 MutablePropertySources
  • 3.实际用法
    • 4.总结

      1.Environment作用

      Environment:获取环境变量

      2.用法

      2.1 systemEnvironment 和 systemProperties

      public static void main(String[] args) {
      
          AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
      
          //操作系统层面的环境变量
          Map<String, Object> systemEnvironment = context.getEnvironment().getSystemEnvironment();
          System.out.println(systemEnvironment);
          System.out.println("==========Environment==========");
      
          //java运行层面,通过-D指定的
          Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties();
          System.out.println(systemProperties );
          System.out.println("=========Properties===========");
      
      }

      getSystemProperties获取的是java运行层面,通过-D指定的变量:
      我们运行打印之后,如图,把第一行的数据复制出来放到其他文件里

      搜索 Dfile , 可以看到定义的UTF-8 编码格式

      再看

       Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties(); 

      打印出的数据,如图红箭头处可以找到指定的 UTF-8

      2.2 MutablePropertySources

      MutablePropertySources sources = context.getEnvironment().getPropertySources();
      System.out.println(sources);
      System.out.println("=========MutablePropertySources===========");

      打印结果:

      [PropertiesPropertySource {name='systemProperties'}, SystemEnvironmentPropertySource {name='systemEnvironment'}, ResourcePropertySource {name='class path resource [spring.properties]'}]

      MutablePropertySources 包括了systemProperties 和systemEnvironment 和配置文件,是最强大的,但一般并不会这样用。

      3.实际用法

      //操作系统层面
      System.out.println(context.getEnvironment().getProperty("JAVA_HOME"));
      //指定环境变量
      System.out.println(context.getEnvironment().getProperty("sun.jnu.encoding"));
      //配置文件
      System.out.println(context.getEnvironment().getProperty("zjy"));

      (spring.properties文件配置如下)

      打印结果:

      4.总结

      到此这篇关于Spring之底层架构核心概念-Environment的文章就介绍到这了,更多相关Spring底层架构Environment内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!

      您可能感兴趣的文章:
      • Spring中的底层架构核心概念类型转换器详解
      • SpringBoot扩展点EnvironmentPostProcessor实例详解
      • 详解Spring中的Environment外部化配置管理
      • 基于Spring Boot的Environment源码理解实现分散配置详解
      相关栏目:

      用户点评