Spring之Environment類的使用方式
業(yè)務(wù)開發(fā)中可能需要當(dāng)前環(huán)境的判斷,比如某些接口嚴(yán)禁生產(chǎn)環(huán)境下調(diào)用,有些接口只能再預(yù)發(fā)環(huán)境下才可用等。
這個時候在Spring中可以使用Environment類。
通常有兩種方式, 一種是基于接口,一種是直接注入。
一、實現(xiàn)EnvironmentAware接口
代碼如下:
package com.chujianyun.web.util; import org.springframework.context.EnvironmentAware; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; /** * 環(huán)境幫助類 * author: 明明如月 * email: liuwangyangedu@163.com */ @Component public class EnvironmentHelper implements EnvironmentAware { private Environment environment; private static final String PROD = "prod"; private static final String PRE = "pre"; private static final String QA = "qa"; public boolean isProd() { return environment.acceptsProfiles(PROD); } public boolean isPre() { return environment.acceptsProfiles(PRE); } public boolean isQa() { return environment.acceptsProfiles(QA); } public String[] getActiveProfiles() { return environment.getActiveProfiles(); } @Override public void setEnvironment(Environment environment) { this.environment = environment; } }
二、直接注入
直接通過注解將環(huán)境注入進(jìn)來。
package com.chujianyun.web.util; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; import javax.annotation.Resource; /** * 環(huán)境幫助類 * author: 明明如月 * email: liuwangyangedu@163.com */ @Component public class EnvironmentHelper{ @Autowired private Environment environment; private static final String PROD = "prod"; private static final String PRE = "pre"; private static final String QA = "qa"; public boolean isProd() { return environment.acceptsProfiles(PROD); } public boolean isPre() { return environment.acceptsProfiles(PRE); } public boolean isQa() { return environment.acceptsProfiles(QA); } public String[] getActiveProfiles() { return environment.getActiveProfiles(); } }
當(dāng)然了除了獲取環(huán)境之外,還可以設(shè)置或者獲取屬性。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- SpringBoot?Test的webEnvironment源碼解讀
- springboot的EnvironmentPostProcessor接口方法源碼解析
- Spring運行環(huán)境Environment的解析
- Spring?Boot讀取配置文件內(nèi)容的3種方式(@Value、Environment和@ConfigurationProperties)
- Spring之底層架構(gòu)核心概念Environment及用法詳解
- SpringBoot擴展點EnvironmentPostProcessor實例詳解
- 詳解Spring中的Environment外部化配置管理
- 基于Spring Boot的Environment源碼理解實現(xiàn)分散配置詳解
相關(guān)文章
地址到經(jīng)緯度坐標(biāo)轉(zhuǎn)化的JAVA代碼
這篇文章介紹了地址到經(jīng)緯度坐標(biāo)轉(zhuǎn)化的JAVA代碼,有需要的朋友可以參考一下2013-09-09Java?SM2加密相關(guān)實現(xiàn)與簡單原理詳解
SM2算法可以用較少的計算能力提供比RSA算法更高的安全強度,而所需的密鑰長度卻遠(yuǎn)比RSA算法低,這篇文章主要給大家介紹了關(guān)于Java?SM2加密相關(guān)實現(xiàn)與簡單原理的相關(guān)資料,需要的朋友可以參考下2024-01-01idea maven編譯報錯Java heap space的解決方法
這篇文章主要為大家詳細(xì)介紹了idea maven編譯報錯Java heap space的相關(guān)解決方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04Springboot中靜態(tài)文件的兩種引入方式總結(jié)
這篇文章主要介紹了Springboot中靜態(tài)文件的兩種引入方式總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03SpringBoot通過token實現(xiàn)用戶互踢功能(具體實現(xiàn))
所謂token,既用戶能夠在一定時間內(nèi)證明自己身份的一長串字符串,這篇文章主要介紹了SpringBoot通過token實現(xiàn)用戶互踢功能,需要的朋友可以參考下2024-04-04