一 前言
本篇文章的主題是在springboot中寫多個配置文件,指定讓個配置文件生效,以便於達到在開發環境,測試環境,線上環境根據不同的配置靈活應用;讀完本篇你將獲得,學會springboot的多環境配置;學會使用idea配置虛擬機參數啟動不同的配置文件;學會使用jar包運行並且指定不同的配置文件等;
二 激活方式一
spring框架內部提供了2中方式用於加載YAML文檔,以供啟動時讀取配置文件;YamlPropertiesFactoryBean 會 加載 YAML 變為 Properties;YamlMapFactoryBean 會 轉換 YAML 為map;使用YAML更加簡便不用擔心內部具體如何轉換;
pom.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>
<dependencies>
<dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-web/<artifactid>
<build>
<plugins>
<plugin>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-maven-plugin/<artifactid>
application.yml
一切從簡,知識追尋者不會在配置文件中寫其他內容,就指定端口即可,用於區別不同的環境;其中配置開發環境為dev,生產環境為pro;默認激活dev 環境;
# 激活配置
spring:
profiles:
active: dev
---
# 配置一 開發環境
spring:
profiles: dev
server:
port: 8060
---
# 配置二 生產環境
spring:
profiles: pro
server:
port: 8061
controller
controller一個hell方法,用於瀏覽器測試;
@RestController
public class ZSZXZ {
@GetMapping("zszxz")
public String hello(){
return "hello 知識追尋者";
}
}
啟動類
啟動類添加@SpringBootApplication註解,表名是個springboot應用,會進行自動配置;
/**
* @Author lsc
*
多環境配置
*/
@SpringBootApplication
public class ProfileApp {
public static void main(String[] args) {
SpringApplication.run(ProfileApp.class,args);
}
}
dev執行結果
啟動工程,打開瀏覽器路徑如下,端口是8086,說明默認激活dev環境已經成功
pro執行結果
application.yml中修改激活環境為pro後重啟工程,修改瀏覽器端口,執行結果如下說明配置成功;
# 激活配置
spring:
profiles:
active: pro
執行結果
激活方式二
application.yml
去除application.yml中激活方式,知識追尋者改用idea配置VM參數選項方式進行激活;
---
# 配置一 開發環境
spring:
profiles: dev
server:
port: 8060
---
# 配置二 生產環境
spring:
profiles: pro
server:
port: 8061
idea配置VM參數
在VM選項中輸入-Dspring.profiles.active=dev,表示激活dev環境;然後重啟工程訪問即可
四 項目部署方式
將工程打包成jar包,在cmd中如下命令執行,如果包名不同請替換,然後瀏覽器訪問即可;
java -jar springboot-profile-1.0-SNAPSHOT.jar --Dspring.profiles.active=dev
五 多配置文件方式
上面的配置文件都寫在一個application.yml中,過於累贅,為了方便查閱和解耦合,推薦多個配置文件方式,然後在主配置文件中激活,具體的步驟如下;
application-zszxz.yml
新建yml文件名為application-zszxz.yml;內容如下
server:
port: 8061
application-test.yml
新建yml文件名為application-test.yml;內容如下
server:
port: 8060
application.yml
修改application.yml內容如下
spring:
profiles:
active: zszxz
啟動後結果
啟動後結果 與之前一致,不再貼圖浪費資源;
閱讀更多 程序猿的內心獨白 的文章