spring.profiles.active配置使用小結(jié)
spring.profiles.active 配置在 Spring 應(yīng)用程序中用于指定當(dāng)前激活的配置文件(profiles)。配置文件是 Spring 提供的一種機(jī)制,用于將應(yīng)用程序的配置劃分為不同的環(huán)境,比如開(kāi)發(fā)(development)、測(cè)試(test)、生產(chǎn)(production)等。
作用
環(huán)境特定配置:
- 不同環(huán)境可能需要不同的配置。例如,開(kāi)發(fā)環(huán)境可能使用本地?cái)?shù)據(jù)庫(kù),而生產(chǎn)環(huán)境使用遠(yuǎn)程數(shù)據(jù)庫(kù)。
- 可以為每個(gè)環(huán)境創(chuàng)建單獨(dú)的屬性文件,如
application-dev.properties、application-test.properties、application-prod.properties。
激活指定配置文件:
- 通過(guò)設(shè)置
spring.profiles.active,可以告訴 Spring 在啟動(dòng)時(shí)加載哪些配置文件。 - 可以在
application.properties文件中指定,也可以通過(guò)命令行參數(shù)或環(huán)境變量來(lái)指定。
支持多個(gè)配置文件:
- 可以同時(shí)激活多個(gè)配置文件,使用逗號(hào)分隔,如
spring.profiles.active=dev,test。
示例
application.properties
spring.profiles.active=dev
application-dev.properties
db.url=jdbc:mysql://localhost:3306/devdb db.username=devuser db.password=devpass
application-prod.properties
db.url=jdbc:mysql://localhost:3306/proddb db.username=produser db.password=prodpass
在上述示例中,spring.profiles.active=dev 表示 Spring 啟動(dòng)時(shí)會(huì)加載 application-dev.properties 文件中的配置。
編程方式激活配置文件
也可以通過(guò) Java 代碼在運(yùn)行時(shí)激活配置文件:
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile("dev")
public class DevConfig {
// 開(kāi)發(fā)環(huán)境特定的 Bean 和配置
}
命令行激活配置文件
通過(guò)命令行參數(shù)在啟動(dòng) Spring Boot 應(yīng)用程序時(shí)激活配置文件:
java -jar myapp.jar --spring.profiles.active=prod
其他問(wèn)題:
配置文件指定dev的話,那dev的配置文件名稱只能叫application-dev嗎?
在 Spring 中,雖然 application-dev.properties 是一個(gè)常見(jiàn)的命名慣例,但你并不局限于這個(gè)命名格式。你可以自由命名你的配置文件,只要你在適當(dāng)?shù)奈恢弥付ㄋ鼈儭?/p>
自定義配置文件命名
如果你希望使用不同的命名方式,可以在主配置文件 application.properties 或 application.yml 中使用 spring.config.additional-location 或 spring.config.import 來(lái)指定其他配置文件的位置。
示例:自定義配置文件名稱
假設(shè)你有一個(gè)自定義命名的配置文件 custom-dev-config.properties,可以通過(guò)以下方式引用它:
application.properties
spring.profiles.active=dev spring.config.additional-location=classpath:/config/custom-dev-config.properties
或者
application.yml
spring:
profiles:
active: dev
config:
additional-location: classpath:/config/custom-dev-config.properties
使用 spring.config.import (Spring Boot 2.4+)
從 Spring Boot 2.4 開(kāi)始,引入了 spring.config.import 屬性,可以更靈活地引入其他配置文件:
application.properties
spring.profiles.active=dev spring.config.import=optional:classpath:/config/custom-dev-config.properties
application.yml
spring:
profiles:
active: dev
config:
import: optional:classpath:/config/custom-dev-config.properties
完整示例
假設(shè)你有以下兩個(gè)文件:
application.properties:
spring.profiles.active=dev spring.config.import=optional:classpath:/config/custom-dev-config.properties
custom-dev-config.properties:
db.url=jdbc:mysql://localhost:3306/devdb db.username=devuser db.password=devpass
在這種配置下,Spring 啟動(dòng)時(shí)會(huì)加載 custom-dev-config.properties 中的內(nèi)容,因?yàn)樗c激活的 dev 配置文件關(guān)聯(lián)。
總結(jié)
? spring.profiles.active 配置使得應(yīng)用程序能夠在不同的環(huán)境中使用不同的配置,從而簡(jiǎn)化了開(kāi)發(fā)、測(cè)試和部署過(guò)程中的配置管理。這一機(jī)制可以確保應(yīng)用程序在不同環(huán)境中具有一致性和靈活性。
? 雖然 application-{profile}.properties 是 Spring 的默認(rèn)命名約定,但你可以使用 spring.config.additional-location 或 spring.config.import 屬性來(lái)自定義配置文件的命名和位置。這使得你的配置更加靈活,可以根據(jù)項(xiàng)目需求進(jìn)行調(diào)整。
到此這篇關(guān)于spring.profiles.active配置使用小結(jié)的文章就介紹到這了,更多相關(guān)spring.profiles.active配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA關(guān)閉SpringBoot程序后仍然占用端口的排查與解決方法
在使用 IntelliJ IDEA 開(kāi)發(fā) Spring Boot 應(yīng)用時(shí),有時(shí)即使關(guān)閉了應(yīng)用,程序仍然占用端口,這會(huì)導(dǎo)致重新啟動(dòng)應(yīng)用時(shí)出現(xiàn)端口被占用的錯(cuò)誤,所以本文給大家介紹了IDEA關(guān)閉SpringBoot程序后仍然占用端口的排查與解決方法,需要的朋友可以參考下2025-02-02
SpringBoot使用Redisson實(shí)現(xiàn)分布式鎖(秒殺系統(tǒng))
這篇文章主要為大家詳細(xì)介紹了SpringBoot使用Redisson實(shí)現(xiàn)分布式鎖,秒殺系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
Spring Cache整合Redis實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Spring Cache整合Redis實(shí)現(xiàn)方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
java讀取文件顯示進(jìn)度條的實(shí)現(xiàn)方法
當(dāng)讀取一個(gè)大文件時(shí),一時(shí)半會(huì)兒無(wú)法看到讀取結(jié)果,就需要顯示一個(gè)進(jìn)度條,是程序員明白已經(jīng)讀了多少文件,可以估算讀取還需要多少時(shí)間,下面的代碼可以實(shí)現(xiàn)這個(gè)功能2014-01-01
springboot + mybatis + druid + 多數(shù)據(jù)源的問(wèn)題詳解
這篇文章主要介紹了springboot + mybatis + druid + 多數(shù)據(jù)源的問(wèn)題詳解,示例代碼文字相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
解析探秘fescar分布式事務(wù)實(shí)現(xiàn)原理
這篇文章主要為大家解析探秘fescar分布式事務(wù)的實(shí)現(xiàn)原理,fescar的txc模型實(shí)現(xiàn)非常有研究的價(jià)值,所以今天我們來(lái)好好翻一翻fescar項(xiàng)目的代碼2022-02-02
SpringSecurity集成第三方登錄過(guò)程詳解(最新推薦)
在ThirdAuthenticationFilter 類的attemptAuthentication()方法中,我們通過(guò)authType類型,然后創(chuàng)建對(duì)應(yīng)的Authentication實(shí)現(xiàn)來(lái)實(shí)現(xiàn)不同方式的登錄,下面給大家分享SpringSecurity集成第三方登錄過(guò)程,感興趣的朋友一起看看吧2024-05-05

