詳解Spring Boot Profiles 配置和使用
介紹
Spring Profiles 提供了一套隔離應用配置的方式,不同的 profiles 提供不同組合的配置,在不同的環(huán)境中,應用在啟動時通過選擇激活某些特定的 profiles 來適應運行時環(huán)境,以達到在不同的環(huán)境可以使用相同的一套程序代碼。
環(huán)境
- JDK 8
- Maven 3
- IntelliJ IDEA 2016
- Spring Boot 1.5.2.RELEASE
@Profiles
你可以在任何 @Component(@Service,@Repository) 或 @Configuration 注解標注的類中使用 @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 中,默認的 profile 是 default,因此,PaymentService.createPaymentQrcode() -> 微信支付二維碼。
你可以通過 spring.profiles.active 來激活某個特定 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
命令行啟動:
java -jar -Dspring.profiles.active=prod xxxx.jar
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
spring Data jpa簡介_動力節(jié)點Java學院整理
這篇文章主要介紹了spring Data jpa簡介的相關(guān)資料,需要的朋友可以參考下2017-09-09
springboot Jpa多數(shù)據(jù)源(不同庫)配置過程
這篇文章主要介紹了springboot Jpa多數(shù)據(jù)源(不同庫)配置過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Java transient 關(guān)鍵字詳解及實例代碼
本文章向大家介紹Java transient關(guān)鍵字的使用方法和實例,包括的知識點有transient的作用、transient使用小結(jié)、transient使用細節(jié),需要的朋友可以參考一下2016-12-12
Java中的BlockingQueue阻塞隊列原理以及實現(xiàn)詳解
這篇文章主要介紹了Java中的BlockingQueue阻塞隊列原理以及實現(xiàn)詳解,在最常見的使用到這個阻塞隊列的地方,就是我們耳熟能詳?shù)木€程池里面了,作為我們線程池的一大最大參與者,也是AQS的一個具體實現(xiàn),需要的朋友可以參考下2023-12-12

