Spring之Environment類(lèi)的使用方式
業(yè)務(wù)開(kāi)發(fā)中可能需要當(dāng)前環(huán)境的判斷,比如某些接口嚴(yán)禁生產(chǎn)環(huán)境下調(diào)用,有些接口只能再預(yù)發(fā)環(huán)境下才可用等。
這個(gè)時(shí)候在Spring中可以使用Environment類(lèi)。
通常有兩種方式, 一種是基于接口,一種是直接注入。
一、實(shí)現(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)境幫助類(lèi)
* 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;
}
}二、直接注入
直接通過(guò)注解將環(huán)境注入進(jìn)來(lái)。
package com.chujianyun.web.util;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 環(huán)境幫助類(lèi)
* 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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot?Test的webEnvironment源碼解讀
- springboot的EnvironmentPostProcessor接口方法源碼解析
- Spring運(yùn)行環(huán)境Environment的解析
- Spring?Boot讀取配置文件內(nèi)容的3種方式(@Value、Environment和@ConfigurationProperties)
- Spring之底層架構(gòu)核心概念Environment及用法詳解
- SpringBoot擴(kuò)展點(diǎn)EnvironmentPostProcessor實(shí)例詳解
- 詳解Spring中的Environment外部化配置管理
- 基于Spring Boot的Environment源碼理解實(shí)現(xiàn)分散配置詳解
相關(guān)文章
Java實(shí)現(xiàn)簡(jiǎn)單銀行ATM功能
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)銀行ATM簡(jiǎn)單功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
地址到經(jīng)緯度坐標(biāo)轉(zhuǎn)化的JAVA代碼
這篇文章介紹了地址到經(jīng)緯度坐標(biāo)轉(zhuǎn)化的JAVA代碼,有需要的朋友可以參考一下2013-09-09
Java?SM2加密相關(guān)實(shí)現(xiàn)與簡(jiǎn)單原理詳解
SM2算法可以用較少的計(jì)算能力提供比RSA算法更高的安全強(qiáng)度,而所需的密鑰長(zhǎng)度卻遠(yuǎn)比RSA算法低,這篇文章主要給大家介紹了關(guān)于Java?SM2加密相關(guān)實(shí)現(xiàn)與簡(jiǎn)單原理的相關(guān)資料,需要的朋友可以參考下2024-01-01
idea maven編譯報(bào)錯(cuò)Java heap space的解決方法
這篇文章主要為大家詳細(xì)介紹了idea maven編譯報(bào)錯(cuò)Java heap space的相關(guān)解決方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04
Java簡(jiǎn)單幾步實(shí)現(xiàn)一個(gè)二叉搜索樹(shù)
二叉樹(shù)包含了根節(jié)點(diǎn),孩子節(jié)點(diǎn),葉節(jié)點(diǎn),每一個(gè)二叉樹(shù)只有一個(gè)根節(jié)點(diǎn),每一個(gè)結(jié)點(diǎn)最多只有兩個(gè)節(jié)點(diǎn),左子樹(shù)的鍵值小于根的鍵值,右子樹(shù)的鍵值大于根的鍵值,下面這篇文章主要給大家介紹了關(guān)于如何在Java中實(shí)現(xiàn)二叉搜索樹(shù)的相關(guān)資料,需要的朋友可以參考下2023-02-02
Springboot中靜態(tài)文件的兩種引入方式總結(jié)
這篇文章主要介紹了Springboot中靜態(tài)文件的兩種引入方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
SpringBoot通過(guò)token實(shí)現(xiàn)用戶互踢功能(具體實(shí)現(xiàn))
所謂token,既用戶能夠在一定時(shí)間內(nèi)證明自己身份的一長(zhǎng)串字符串,這篇文章主要介紹了SpringBoot通過(guò)token實(shí)現(xiàn)用戶互踢功能,需要的朋友可以參考下2024-04-04
sharding-jdbc讀寫(xiě)分離原理詳細(xì)解析
這篇文章主要介紹了sharding-jdbc讀寫(xiě)分離原理詳細(xì)解析,很多時(shí)候,為了應(yīng)付DB的高并發(fā)讀寫(xiě),我們會(huì)采用讀寫(xiě)分離技術(shù),讀寫(xiě)分離指的是利用數(shù)據(jù)庫(kù)主從技術(shù)(把數(shù)據(jù)復(fù)制到多個(gè)節(jié)點(diǎn)中),分散讀多個(gè)庫(kù)以支持高并發(fā)的讀,需要的朋友可以參考下2023-12-12

