springboot多環(huán)境配置方案(不用5分鐘)
一 前言
本篇文章的主題是在springboot中寫多個(gè)配置文件,指定讓個(gè)配置文件生效,以便于達(dá)到在開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,線上環(huán)境根據(jù)不同的配置靈活應(yīng)用;讀完本篇你將獲得,學(xué)會(huì)springboot的多環(huán)境配置;學(xué)會(huì)使用idea配置虛擬機(jī)參數(shù)啟動(dòng)不同的配置文件;學(xué)會(huì)使用jar包運(yùn)行并且指定不同的配置文件等;
二 激活方式一
spring框架內(nèi)部提供了2中方式用于加載YAML文檔,以供啟動(dòng)時(shí)讀取配置文件;YamlPropertiesFactoryBean 會(huì) 加載 YAML 變?yōu)?Properties;YamlMapFactoryBean 會(huì) 轉(zhuǎn)換 YAML 為map;使用YAML更加簡(jiǎn)便不用擔(dān)心內(nèi)部具體如何轉(zhuǎn)換;
2.1pom.xml
引入依賴boor-start依賴和打包插件;jdk1.8版本,boot2.1.1;
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.2 application.yml
一切從簡(jiǎn),知識(shí)追尋者不會(huì)在配置文件中寫其他內(nèi)容,就指定端口即可,用于區(qū)別不同的環(huán)境;其中配置開(kāi)發(fā)環(huán)境為dev,生產(chǎn)環(huán)境為pro;默認(rèn)激活dev 環(huán)境;
# 激活配置 spring: profiles: active: dev --- # 配置一 開(kāi)發(fā)環(huán)境 spring: profiles: dev server: port: 8060 --- # 配置二 生產(chǎn)環(huán)境 spring: profiles: pro server: port: 8061
2.3 controller
controller一個(gè)hell方法,用于瀏覽器測(cè)試;
@RestController
public class ZSZXZ {
@GetMapping("zszxz")
public String hello(){
return "hello 知識(shí)追尋者";
}
}
2.4 啟動(dòng)類
啟動(dòng)類添加@SpringBootApplication注解,表名是個(gè)springboot應(yīng)用,會(huì)進(jìn)行自動(dòng)配置;
/**
* @Author lsc
* <p> 多環(huán)境配置 </p>
*/
@SpringBootApplication
public class ProfileApp {
public static void main(String[] args) {
SpringApplication.run(ProfileApp.class,args);
}
}
2.5 dev執(zhí)行結(jié)果
啟動(dòng)工程,打開(kāi)瀏覽器路徑如下,端口是8086,說(shuō)明默認(rèn)激活dev環(huán)境已經(jīng)成功
http://localhost:8060/zszxz

2.6 pro執(zhí)行結(jié)果
application.yml中修改激活環(huán)境為pro后重啟工程,修改瀏覽器端口,執(zhí)行結(jié)果如下說(shuō)明配置成功;
# 激活配置 spring: profiles: active: pro
http://localhost:8061/zszxz
執(zhí)行結(jié)果

三 激活方式二
3.1 application.yml
去除application.yml中激活方式,知識(shí)追尋者改用idea配置VM參數(shù)選項(xiàng)方式進(jìn)行激活;
--- # 配置一 開(kāi)發(fā)環(huán)境 spring: profiles: dev server: port: 8060 --- # 配置二 生產(chǎn)環(huán)境 spring: profiles: pro server: port: 8061
3.2 idea配置VM參數(shù)
在VM選項(xiàng)中輸入-Dspring.profiles.active=dev,表示激活dev環(huán)境;然后重啟工程訪問(wèn)即可

四 項(xiàng)目部署方式
將工程打包成jar包,在cmd中如下命令執(zhí)行,如果包名不同請(qǐng)?zhí)鎿Q,然后瀏覽器訪問(wèn)即可;
java -jar springboot-profile-1.0-SNAPSHOT.jar --Dspring.profiles.active=dev

五 多配置文件方式
上面的配置文件都寫在一個(gè)application.yml中,過(guò)于累贅,為了方便查閱和解耦合,推薦多個(gè)配置文件方式,然后在主配置文件中激活,具體的步驟如下;
5.1 application-zszxz.yml
新建yml文件名為application-zszxz.yml;內(nèi)容如下
server: port: 8061
5.2 application-test.yml
新建yml文件名為application-test.yml;內(nèi)容如下
server: port: 8060
5.3 application.yml
修改application.yml內(nèi)容如下
spring: profiles: active: zszxz
5.4 啟動(dòng)后結(jié)果
http://localhost:8061/zszxz 啟動(dòng)后結(jié)果 與之前一致,不再貼圖浪費(fèi)資源;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù)
ShedLock 是一個(gè) Java 庫(kù),通常用于分布式系統(tǒng)中,確保定時(shí)任務(wù)(Scheduled Tasks)在集群環(huán)境下只被某一個(gè)實(shí)例執(zhí)行一次,它通過(guò)在共享資源中添加鎖的方式,本文給大家介紹了SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù),需要的朋友可以參考下2024-11-11
Java鎖機(jī)制的使用與實(shí)戰(zhàn)分析
本文全面探討了Java中的鎖機(jī)制,包括synchronized關(guān)鍵字、內(nèi)置鎖、顯示鎖、讀寫鎖、條件變量、樂(lè)觀鎖、悲觀鎖、自旋鎖和StampedLock,每個(gè)鎖機(jī)制都有其特點(diǎn)和適用場(chǎng)景,開(kāi)發(fā)者應(yīng)根據(jù)具體需求選擇合適的鎖實(shí)現(xiàn),以確保多線程程序的并發(fā)安全和性能2026-01-01
SpringBoot+Dubbo+Seata分布式事務(wù)實(shí)戰(zhàn)詳解
這篇文章主要介紹了SpringBoot+Dubbo+Seata分布式事務(wù)實(shí)戰(zhàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
使用Springboot打成jar包thymeleaf的問(wèn)題
這篇文章主要介紹了使用Springboot打成jar包thymeleaf的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Spring超詳細(xì)講解事務(wù)和事務(wù)傳播機(jī)制
Spring事務(wù)的本質(zhì)就是對(duì)數(shù)據(jù)庫(kù)事務(wù)的支持,沒(méi)有數(shù)據(jù)庫(kù)事務(wù),Spring是無(wú)法提供事務(wù)功能的。Spring只提供統(tǒng)一的事務(wù)管理接口,具體實(shí)現(xiàn)都是由數(shù)據(jù)庫(kù)自己實(shí)現(xiàn)的,Spring會(huì)在事務(wù)開(kāi)始時(shí),根據(jù)當(dāng)前設(shè)置的隔離級(jí)別,調(diào)整數(shù)據(jù)庫(kù)的隔離級(jí)別,由此保持一致2022-06-06

