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)文章
Java基礎(chǔ)強(qiáng)化訓(xùn)練輸入錯(cuò)誤即結(jié)束進(jìn)程
本文主要介紹了Java編程的基礎(chǔ)知識(shí)強(qiáng)化應(yīng)用,文中實(shí)例涉及到了許多基礎(chǔ)知識(shí),new對(duì)象,控制臺(tái)輸入,if語(yǔ)句等。很實(shí)用,需要的朋友可以參考下2017-09-09
Spring Cloud 2020.0.0正式發(fā)布再見(jiàn)了Netflix
這篇文章主要介紹了Spring Cloud 2020.0.0正式發(fā)布再見(jiàn)了Netflix,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
SpringBoot 項(xiàng)目中的圖片處理策略之本地存儲(chǔ)與路徑映射
在SpringBoot項(xiàng)目中,靜態(tài)資源存放在static目錄下,使得前端可以通過(guò)URL來(lái)訪問(wèn)這些資源,我們就需要將文件系統(tǒng)的文件路徑與URL建立一個(gè)映射關(guān)系,把文件系統(tǒng)中的文件當(dāng)成我們的靜態(tài)資源即可,本文給大家介紹SpringBoot本地存儲(chǔ)與路徑映射的相關(guān)知識(shí),感興趣的朋友一起看看吧2023-12-12
springboot設(shè)置了server.port但是沒(méi)有用,還是8080問(wèn)題
這篇文章主要介紹了springboot設(shè)置了server.port但是沒(méi)有用,還是8080問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java使用ExecutorService來(lái)停止線程服務(wù)
這篇文章主要介紹了Java使用ExecutorService來(lái)停止線程服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
MyBatis-Plus通用枚舉自動(dòng)關(guān)聯(lián)注入的實(shí)現(xiàn)
本文主要介紹了MyBatis-Plus通用枚舉自動(dòng)關(guān)聯(lián)注入的實(shí)現(xiàn),解決了繁瑣的配置,讓 mybatis 優(yōu)雅的使用枚舉屬性,感興趣的可以一起來(lái)了解一下2021-06-06
SpringBoot?項(xiàng)目中創(chuàng)建線程池
這篇文章主要介紹了SpringBoot?項(xiàng)目中創(chuàng)建線程池,文章基于Spring?Boot項(xiàng)目創(chuàng)建線程池ThreadPoolExecutor,需要的小伙伴可以參考一下2022-04-04

