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運行層面,通過-D指定的 Map<String, Object> systemProperties = context.getEnvironment().getSystemProperties(); System.out.println(systemProperties ); System.out.println("=========Properties==========="); }
getSystemProperties獲取的是java運行層面,通過-D指定的變量:
我們運行打印之后,如圖,把第一行的數(shù)據(jù)復(fù)制出來放到其他文件里
搜索 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)大的,但一般并不會這樣用。
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文件配置如下)
打印結(jié)果:
4.總結(jié)
到此這篇關(guān)于Spring之底層架構(gòu)核心概念-Environment的文章就介紹到這了,更多相關(guān)Spring底層架構(gòu)Environment內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot?Test的webEnvironment源碼解讀
- springboot的EnvironmentPostProcessor接口方法源碼解析
- Spring運行環(huán)境Environment的解析
- Spring?Boot讀取配置文件內(nèi)容的3種方式(@Value、Environment和@ConfigurationProperties)
- SpringBoot擴(kuò)展點EnvironmentPostProcessor實例詳解
- 詳解Spring中的Environment外部化配置管理
- 基于Spring Boot的Environment源碼理解實現(xiàn)分散配置詳解
- Spring之Environment類的使用方式
相關(guān)文章
基于獲取JAVA路徑,包括CLASSPATH外的路徑的方法詳解
本篇文章是對獲取JAVA路徑,包括CLASSPATH外的路徑的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05springboot使用webservice發(fā)布和調(diào)用接口的實例詳解
本文介紹了如何在Springboot中使用webservice發(fā)布和調(diào)用接口,涵蓋了必要的依賴添加和代碼示例,文中提供了服務(wù)端和客戶端的實現(xiàn)方法,以及如何設(shè)置端口和服務(wù)地址,幫助讀者更好地理解和應(yīng)用Springboot結(jié)合webservice的技術(shù)2024-10-10使用spring+maven不同環(huán)境讀取配置方式
這篇文章主要介紹了使用spring+maven不同環(huán)境讀取配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Spring?Retry實現(xiàn)重試機(jī)制的示例詳解
這篇文章主要為大家詳細(xì)介紹了Spring-Retry的用法以及實現(xiàn)原理是怎么樣的,文中的示例代碼講解詳細(xì),具有一定的參考價值,需要的可以了解一下2023-07-07Java14對于NullPointerException的新處理方式示例解析
這篇文章主要為大家介紹了Java14對于NullPointerException的新處理方式示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09