Spring之底層架構核心概念Environment及用法詳解
1.Environment作用
Environment:獲取環(huán)境變量
2.用法
2.1 systemEnvironment 和 systemProperties
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
//操作系統(tǒng)層面的環(huán)境變量
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指定的變量:
我們運行打印之后,如圖,把第一行的數(shù)據復制出來放到其他文件里

搜索 Dfile , 可以看到定義的UTF-8 編碼格式

再看
Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties();
打印出的數(shù)據,如圖紅箭頭處可以找到指定的 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.實際用法
//操作系統(tǒng)層面
System.out.println(context.getEnvironment().getProperty("JAVA_HOME"));
//指定環(huán)境變量
System.out.println(context.getEnvironment().getProperty("sun.jnu.encoding"));
//配置文件
System.out.println(context.getEnvironment().getProperty("zjy"));(spring.properties文件配置如下)

打印結果:

4.總結
到此這篇關于Spring之底層架構核心概念-Environment的文章就介紹到這了,更多相關Spring底層架構Environment內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- SpringBoot?Test的webEnvironment源碼解讀
- springboot的EnvironmentPostProcessor接口方法源碼解析
- Spring運行環(huán)境Environment的解析
- Spring?Boot讀取配置文件內容的3種方式(@Value、Environment和@ConfigurationProperties)
- SpringBoot擴展點EnvironmentPostProcessor實例詳解
- 詳解Spring中的Environment外部化配置管理
- 基于Spring Boot的Environment源碼理解實現(xiàn)分散配置詳解
- Spring之Environment類的使用方式
相關文章
基于獲取JAVA路徑,包括CLASSPATH外的路徑的方法詳解
本篇文章是對獲取JAVA路徑,包括CLASSPATH外的路徑的方法進行了詳細的分析介紹,需要的朋友參考下2013-05-05
springboot使用webservice發(fā)布和調用接口的實例詳解
本文介紹了如何在Springboot中使用webservice發(fā)布和調用接口,涵蓋了必要的依賴添加和代碼示例,文中提供了服務端和客戶端的實現(xiàn)方法,以及如何設置端口和服務地址,幫助讀者更好地理解和應用Springboot結合webservice的技術2024-10-10
使用spring+maven不同環(huán)境讀取配置方式
這篇文章主要介紹了使用spring+maven不同環(huán)境讀取配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
Java14對于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09

