Spring之底層架構(gòu)核心概念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運(yùn)行層面,通過(guò)-D指定的 Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties(); System.out.println(systemProperties ); System.out.println("=========Properties==========="); }
getSystemProperties獲取的是java運(yùn)行層面,通過(guò)-D指定的變量:
我們運(yùn)行打印之后,如圖,把第一行的數(shù)據(jù)復(fù)制出來(lái)放到其他文件里
搜索 Dfile , 可以看到定義的UTF-8 編碼格式
再看
Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties();
打印出的數(shù)據(jù),如圖紅箭頭處可以找到指定的 UTF-8
2.2 MutablePropertySources
MutablePropertySources sources = context.getEnvironment().getPropertySources(); System.out.println(sources); System.out.println("=========MutablePropertySources===========");
打印結(jié)果:
[PropertiesPropertySource {name='systemProperties'}, SystemEnvironmentPropertySource {name='systemEnvironment'}, ResourcePropertySource {name='class path resource [spring.properties]'}]
MutablePropertySources 包括了systemProperties 和systemEnvironment 和配置文件,是最強(qiáng)大的,但一般并不會(huì)這樣用。
3.實(shí)際用法
//操作系統(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文件配置如下)
打印結(jié)果:
4.總結(jié)
到此這篇關(guān)于Spring之底層架構(gòu)核心概念-Environment的文章就介紹到這了,更多相關(guān)Spring底層架構(gòu)Environment內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot?Test的webEnvironment源碼解讀
- springboot的EnvironmentPostProcessor接口方法源碼解析
- Spring運(yùn)行環(huán)境Environment的解析
- Spring?Boot讀取配置文件內(nèi)容的3種方式(@Value、Environment和@ConfigurationProperties)
- SpringBoot擴(kuò)展點(diǎn)EnvironmentPostProcessor實(shí)例詳解
- 詳解Spring中的Environment外部化配置管理
- 基于Spring Boot的Environment源碼理解實(shí)現(xiàn)分散配置詳解
- Spring之Environment類的使用方式
相關(guān)文章
基于獲取JAVA路徑,包括CLASSPATH外的路徑的方法詳解
本篇文章是對(duì)獲取JAVA路徑,包括CLASSPATH外的路徑的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05springboot使用webservice發(fā)布和調(diào)用接口的實(shí)例詳解
本文介紹了如何在Springboot中使用webservice發(fā)布和調(diào)用接口,涵蓋了必要的依賴添加和代碼示例,文中提供了服務(wù)端和客戶端的實(shí)現(xiàn)方法,以及如何設(shè)置端口和服務(wù)地址,幫助讀者更好地理解和應(yīng)用Springboot結(jié)合webservice的技術(shù)2024-10-10JAVA操作HDFS案例的簡(jiǎn)單實(shí)現(xiàn)
本篇文章主要介紹了JAVA操作HDFS案例的簡(jiǎn)單實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08java多線程消息隊(duì)列的實(shí)現(xiàn)代碼
本篇文章主要介紹了java多線程消息隊(duì)列的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07使用spring+maven不同環(huán)境讀取配置方式
這篇文章主要介紹了使用spring+maven不同環(huán)境讀取配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Spring?Retry實(shí)現(xiàn)重試機(jī)制的示例詳解
這篇文章主要為大家詳細(xì)介紹了Spring-Retry的用法以及實(shí)現(xiàn)原理是怎么樣的,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,需要的可以了解一下2023-07-07高并發(fā)下restTemplate的錯(cuò)誤分析方式
這篇文章主要介紹了高并發(fā)下restTemplate的錯(cuò)誤分析方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java設(shè)計(jì)模式之訪問(wèn)者模式使用場(chǎng)景及代碼示例
這篇文章主要介紹了Java設(shè)計(jì)模式之訪問(wèn)者模式使用場(chǎng)景及代碼示例,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-11-11Java14對(duì)于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對(duì)于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09