springboot多環(huán)境配置方案(不用5分鐘)
一 前言
本篇文章的主題是在springboot中寫多個配置文件,指定讓個配置文件生效,以便于達(dá)到在開發(fā)環(huán)境,測試環(huán)境,線上環(huán)境根據(jù)不同的配置靈活應(yīng)用;讀完本篇你將獲得,學(xué)會springboot的多環(huán)境配置;學(xué)會使用idea配置虛擬機(jī)參數(shù)啟動不同的配置文件;學(xué)會使用jar包運行并且指定不同的配置文件等;
二 激活方式一
spring框架內(nèi)部提供了2中方式用于加載YAML文檔,以供啟動時讀取配置文件;YamlPropertiesFactoryBean 會 加載 YAML 變?yōu)?Properties;YamlMapFactoryBean 會 轉(zhuǎn)換 YAML 為map;使用YAML更加簡便不用擔(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
一切從簡,知識追尋者不會在配置文件中寫其他內(nèi)容,就指定端口即可,用于區(qū)別不同的環(huán)境;其中配置開發(fā)環(huán)境為dev,生產(chǎn)環(huán)境為pro;默認(rèn)激活dev 環(huán)境;
# 激活配置 spring: profiles: active: dev --- # 配置一 開發(fā)環(huán)境 spring: profiles: dev server: port: 8060 --- # 配置二 生產(chǎn)環(huán)境 spring: profiles: pro server: port: 8061
2.3 controller
controller一個hell方法,用于瀏覽器測試;
@RestController
public class ZSZXZ {
@GetMapping("zszxz")
public String hello(){
return "hello 知識追尋者";
}
}
2.4 啟動類
啟動類添加@SpringBootApplication注解,表名是個springboot應(yīng)用,會進(jìn)行自動配置;
/**
* @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é)果
啟動工程,打開瀏覽器路徑如下,端口是8086,說明默認(rèn)激活dev環(huán)境已經(jīng)成功
http://localhost:8060/zszxz

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

三 激活方式二
3.1 application.yml
去除application.yml中激活方式,知識追尋者改用idea配置VM參數(shù)選項方式進(jìn)行激活;
--- # 配置一 開發(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選項中輸入-Dspring.profiles.active=dev,表示激活dev環(huán)境;然后重啟工程訪問即可

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

五 多配置文件方式
上面的配置文件都寫在一個application.yml中,過于累贅,為了方便查閱和解耦合,推薦多個配置文件方式,然后在主配置文件中激活,具體的步驟如下;
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 啟動后結(jié)果
http://localhost:8061/zszxz 啟動后結(jié)果 與之前一致,不再貼圖浪費資源;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot集成ShedLock實現(xiàn)分布式定時任務(wù)
ShedLock 是一個 Java 庫,通常用于分布式系統(tǒng)中,確保定時任務(wù)(Scheduled Tasks)在集群環(huán)境下只被某一個實例執(zhí)行一次,它通過在共享資源中添加鎖的方式,本文給大家介紹了SpringBoot集成ShedLock實現(xiàn)分布式定時任務(wù),需要的朋友可以參考下2024-11-11
SpringBoot+Dubbo+Seata分布式事務(wù)實戰(zhàn)詳解
這篇文章主要介紹了SpringBoot+Dubbo+Seata分布式事務(wù)實戰(zhàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
使用Springboot打成jar包thymeleaf的問題
這篇文章主要介紹了使用Springboot打成jar包thymeleaf的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
Spring超詳細(xì)講解事務(wù)和事務(wù)傳播機(jī)制
Spring事務(wù)的本質(zhì)就是對數(shù)據(jù)庫事務(wù)的支持,沒有數(shù)據(jù)庫事務(wù),Spring是無法提供事務(wù)功能的。Spring只提供統(tǒng)一的事務(wù)管理接口,具體實現(xiàn)都是由數(shù)據(jù)庫自己實現(xiàn)的,Spring會在事務(wù)開始時,根據(jù)當(dāng)前設(shè)置的隔離級別,調(diào)整數(shù)據(jù)庫的隔離級別,由此保持一致2022-06-06

