SpringBoot中多環(huán)境yml的配置與打包問題
SpringBoot 多環(huán)境配置與打包 啟動(dòng)的兩種方式
前言:
在我們使用SpringBoot 作為框架來開發(fā)項(xiàng)目的時(shí)候,一般我們大致會(huì)分為dev(開發(fā)),test(測試),prod(生產(chǎn))這幾種環(huán)境。
每套環(huán)境的數(shù)據(jù)庫配置以及項(xiàng)目配置或多或少是存在一些差異的,針對上訴情況 所以,本文就要探討一下 項(xiàng)目中如何切換對應(yīng)的配置文件并啟動(dòng)…
方式一:yml中指定
1.修改配置文件
SpringBoot項(xiàng)目默認(rèn)配置文件在src/main/resources下的 application.properties
個(gè)人習(xí)慣使用YML格式,所以修改項(xiàng)目名文application.yml
將此文件為項(xiàng)目啟動(dòng)配置主文件
配置文件內(nèi)容如下
spring:
application:
name: springboot-profile
profiles:
active: dev配置文件解釋:
創(chuàng)建一個(gè)application名為springboot-profile 配置環(huán)境為 dev 環(huán)境 那么在啟動(dòng)時(shí)就會(huì)加載application-dev.yml 這個(gè)配置文件
2.創(chuàng)建不同環(huán)境的application.yml

如果想要更換其他環(huán)境 ,如test測試環(huán)境 只需要在主配置文件 application.yml中修改 active: dev 為 active: test 那么項(xiàng)目在啟動(dòng)時(shí)就會(huì)加載application-test.yml配置文件
方式二:maven 執(zhí)行對應(yīng)命令打包對應(yīng)配置文件
(1)創(chuàng)建不同環(huán)境的application.yml

(2)在application.yml 主配置文件中添加如下屬性
server:
port: 8080
spring:
application:
name: springboot-profile
profiles: #指定執(zhí)行環(huán)境
active: @package.environment@(3)不同環(huán)境指定不同的配置屬性
例如application-dev.yml
# 開發(fā)環(huán)境 author: name: leileidev
例如application-prod.yml
#生產(chǎn)線上環(huán)境 author: name: leileiprod
(4)pom.xml 添加依賴以及屬性
profiles 與 dependencies 與build 平級
<!--配置環(huán)境的profile-->
<profiles>
<profile>
<id>dev</id>
<properties>
<package.environment>dev</package.environment>
</properties>
<!-- 是否默認(rèn) true表示默認(rèn)-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<package.environment>test</package.environment>
</properties>
</profile>
<profile>
<!-- 生產(chǎn)環(huán)境 -->
<id>prod</id>
<properties>
<package.environment>prod</package.environment>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.yml</include>
<include>application-${package.environment}.yml</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>(5)指定環(huán)境打包
進(jìn)入項(xiàng)目目錄下 執(zhí)行
mvn clean install -P dev
則會(huì)打包application.yml與 application-dev.yml在打包文件 target中
打包 test
mvn clean install -P test
打包 prod
mvn clean install -P prod
idea 中操作如下:

出現(xiàn) build success 則說明打包成功

運(yùn)行對應(yīng)jar 包測試

也可創(chuàng)建一個(gè)簡單控制層進(jìn)行測試
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>@RestController
@RequestMapping("profile")
public class TestProfileController {
@Value("${author.name}")
private String name;
@GetMapping("/port")
public String getPort() {
return name;
}
}
到此 !
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
出現(xiàn)java.lang.UnsupportedClassVersionError錯(cuò)誤的原因以及解決方法
這篇文章主要給大家介紹了關(guān)于出現(xiàn)java.lang.UnsupportedClassVersionError錯(cuò)誤的原因以及解決方法,文中通過圖文以及代碼示例將這個(gè)錯(cuò)誤介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
淺析Java數(shù)據(jù)庫操作工具包jOOQ的使用
jOOQ?是一個(gè)輕量級的?Java?ORM(對象關(guān)系映射)框架,可用來構(gòu)建復(fù)雜的?SQL?查詢,這篇文章主要來和大家介紹一下jOOQ的使用,需要的可以參考下2024-04-04
java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法
這篇文章主要為大家詳細(xì)介紹了java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
深入探討Java超時(shí)自動(dòng)取消的實(shí)現(xiàn)方案
在復(fù)雜的分布式系統(tǒng)中,超時(shí)控制是保障系統(tǒng)穩(wěn)定性和可用性的關(guān)鍵機(jī)制,本文將深入探討Java中實(shí)現(xiàn)超時(shí)自動(dòng)取消的多種方案,希望對大家有所幫助2024-11-11
Java中BufferedReader與BufferedWriter類的使用示例
BufferedReader與BufferedWriter分別繼承于Reader和Writer類,分別為字符的讀取和寫入添加緩沖功能,這里我們就來看一下Java中BufferedReader與BufferedWriter類的使用示例:2016-06-06
Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加操作及問題小結(jié)
這篇文章主要介紹了在Springboot+Mybatis-plus不使用SQL語句進(jìn)行多表添加操作,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04

