詳解Spring Boot Profiles 配置和使用
介紹
Spring Profiles 提供了一套隔離應(yīng)用配置的方式,不同的 profiles 提供不同組合的配置,在不同的環(huán)境中,應(yīng)用在啟動(dòng)時(shí)通過選擇激活某些特定的 profiles 來適應(yīng)運(yùn)行時(shí)環(huán)境,以達(dá)到在不同的環(huán)境可以使用相同的一套程序代碼。
環(huán)境
- JDK 8
- Maven 3
- IntelliJ IDEA 2016
- Spring Boot 1.5.2.RELEASE
@Profiles
你可以在任何 @Component(@Service,@Repository) 或 @Configuration 注解標(biāo)注的類中使用 @Profiles 注解:
public interface PaymentService {
String createPaymentQrcode();
}
@Service
@Profile("alipay")
public class AlipayService implements PaymentService {
@Override
public String createPaymentQrcode() {
return "支付寶支付二維碼";
}
}
@Service
@Profile({"default", "wechatpay"})
public class WechatpayService implements PaymentService {
@Override
public String createPaymentQrcode() {
return "微信支付二維碼";
}
}
在 Spring Boot 中,默認(rèn)的 profile 是 default,因此,PaymentService.createPaymentQrcode() -> 微信支付二維碼。
你可以通過 spring.profiles.active 來激活某個(gè)特定 profile:
java -jar -Dspring.profiles.active='alipay' xxx.jar
PaymentService.createPaymentQrcode() -> 支付寶支付二維碼。
多環(huán)境配置
在Spring Boot 中,多環(huán)境配置文件可以使用 application-{profile}.{properties|yml} 的方式。
@Component
@ConfigurationProperties("jdbc")
public class JdbcProperties {
private String username;
private String password;
// getters and setters
}
開發(fā)環(huán)境 application-dev.properties 配置:
jdbc.username=root jdbc.password=123654
生產(chǎn)環(huán)境 application-prod.properties 配置:
jdbc.username=produser jdbc.password=16888888
或:
開發(fā)環(huán)境 application-dev.yml 配置:
jdbc: username: root password: 123654
生產(chǎn)環(huán)境 application-prod.yml 配置:
jdbc: username: produser password: 16888888
或:
只使用 application.yml,并在此文件中通過 --- 分隔符創(chuàng)建多 profile 配置:
app: version: 1.0.0 spring: profiles: active: "dev" --- spring: profiles: dev jdbc: username: root password: 123654 --- spring: profiles: prod jdbc: username: produser password: 16888888
命令行啟動(dòng):
java -jar -Dspring.profiles.active=prod xxxx.jar
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
spring Data jpa簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了spring Data jpa簡(jiǎn)介的相關(guān)資料,需要的朋友可以參考下2017-09-09
java計(jì)算代碼段執(zhí)行時(shí)間的詳細(xì)代碼
java里計(jì)算代碼段執(zhí)行時(shí)間可以有兩種方法,一種是毫秒級(jí)別的計(jì)算,另一種是更精確的納秒級(jí)別的計(jì)算,這篇文章主要介紹了java計(jì)算代碼段執(zhí)行時(shí)間,需要的朋友可以參考下2022-08-08
springboot Jpa多數(shù)據(jù)源(不同庫)配置過程
這篇文章主要介紹了springboot Jpa多數(shù)據(jù)源(不同庫)配置過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
詳解java中通過post方式訪問后臺(tái)服務(wù)器
本篇文章主要介紹了詳解java中通過post方式訪問后臺(tái)服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Java transient 關(guān)鍵字詳解及實(shí)例代碼
本文章向大家介紹Java transient關(guān)鍵字的使用方法和實(shí)例,包括的知識(shí)點(diǎn)有transient的作用、transient使用小結(jié)、transient使用細(xì)節(jié),需要的朋友可以參考一下2016-12-12
Java中的BlockingQueue阻塞隊(duì)列原理以及實(shí)現(xiàn)詳解
這篇文章主要介紹了Java中的BlockingQueue阻塞隊(duì)列原理以及實(shí)現(xiàn)詳解,在最常見的使用到這個(gè)阻塞隊(duì)列的地方,就是我們耳熟能詳?shù)木€程池里面了,作為我們線程池的一大最大參與者,也是AQS的一個(gè)具體實(shí)現(xiàn),需要的朋友可以參考下2023-12-12

