詳解Spring Boot Profiles 配置和使用
介紹
Spring Profiles 提供了一套隔離應(yīng)用配置的方式,不同的 profiles 提供不同組合的配置,在不同的環(huán)境中,應(yīng)用在啟動時通過選擇激活某些特定的 profiles 來適應(yīng)運行時環(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
來激活某個特定 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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中樹的存儲結(jié)構(gòu)實現(xiàn)示例代碼
本篇文章主要介紹了Java中樹的存儲結(jié)構(gòu)實現(xiàn)示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Java之Error與Exception的區(qū)別案例詳解
這篇文章主要介紹了Java之Error與Exception的區(qū)別案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09Java設(shè)置token有效期的5個應(yīng)用場景(雙token實現(xiàn))
Token最常見的應(yīng)用場景之一就是身份驗證,本文主要介紹了Java設(shè)置token有效期的5個應(yīng)用場景(雙token實現(xiàn)),具有一定的參考價值,感興趣的可以來了解一下2024-04-04Spring依賴注入中的@Resource與@Autowired詳解
這篇文章主要介紹了Spring依賴注入中的@Resource與@Autowired詳解,提到Spring依賴注入,大家最先想到應(yīng)該是@Resource和@Autowired,對于Spring為什么要支持兩個這么類似的注解卻未提到,屬于知其然而不知其所以然,本文就來做詳細(xì)講解,需要的朋友可以參考下2023-09-09深入分析Spring BeanDefinition的構(gòu)造元信息
Bean Definition是一個包含Bean元數(shù)據(jù)的對象,它描述了如何創(chuàng)建Bean實例、Bean屬性的值以及Bean之間的依賴關(guān)系,本文將帶大家深入分析Spring BeanDefinition的構(gòu)造元信息,需要的朋友可以參考下2024-01-01SpringBoot+MySQL實現(xiàn)讀寫分離的多種具體方案
在高并發(fā)和大數(shù)據(jù)量的場景下,數(shù)據(jù)庫成為了系統(tǒng)的瓶頸。為了提高數(shù)據(jù)庫的處理能力和性能,讀寫分離成為了一種常用的解決方案,本文將介紹在Spring?Boot項目中實現(xiàn)MySQL數(shù)據(jù)庫讀寫分離的多種具體方案,需要的朋友可以參考下2023-06-06