欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot多環(huán)境配置及配置文件分類實例詳解

 更新時間:2022年10月11日 09:24:08   作者:|舊市拾荒|  
這篇文章主要介紹了SpringBoot多環(huán)境配置及配置文件分類,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、多環(huán)境配置

在工作中,對于開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境的配置肯定都不相同,比如我們開發(fā)階段會在自己的電腦上安裝 mysql ,連接自己電腦上的 mysql 即可,但是項目開發(fā)完畢后要上線就需要該配置,將環(huán)境的配置改為線上環(huán)境的。

來回的修改配置會很麻煩,而 SpringBoot 給開發(fā)者提供了多環(huán)境的快捷配置,需要切換環(huán)境時只需要改一個配置即可。不同類型的配置文件多環(huán)境開發(fā)的配置都不相同,接下來對不同類型的配置文件進行說明

1.1 yaml文件

application.yml 中使用 --- 來分割不同的配置,內(nèi)容如下

#開發(fā)
spring:
  profiles: dev #給開發(fā)環(huán)境起的名字
server:
  port: 80
---
#生產(chǎn)
spring:
  profiles: pro #給生產(chǎn)環(huán)境起的名字
server:
  port: 81
---
#測試
spring:
  profiles: test #給測試環(huán)境起的名字
server:
  port: 82
---

上面配置中 spring.profiles 是用來給不同的配置起名字的。而如何告知 SpringBoot 使用哪段配置呢?可以使用如下配置來啟用都一段配置

#設(shè)置啟用的環(huán)境
spring:
  profiles:
    active: dev  #表示使用的是開發(fā)環(huán)境的配置

綜上所述,application.yml 配置文件內(nèi)容如下

#設(shè)置啟用的環(huán)境
spring:
  profiles:
    active: dev
?
---
#開發(fā)
spring:
  profiles: dev
server:
  port: 80
---
#生產(chǎn)
spring:
  profiles: pro
server:
  port: 81
---
#測試
spring:
  profiles: test
server:
  port: 82
---

注意:在上面配置中給不同配置起名字的 spring.profiles 配置項已經(jīng)過時。最新用來起名字的配置項是

#開發(fā)
spring:
  config:
    activate:
      on-profile: dev

1.2 properties文件

properties 類型的配置文件配置多環(huán)境需要定義不同的配置文件

  • application-dev.properties 文件是開發(fā)環(huán)境的配置文件。我們在該文件中配置端口號為 80
server.port=80
  • application-test.properties 文件是測試環(huán)境的配置文件。我們在該文件中配置端口號為 81
server.port=81
  • application-pro.properties 文件是生產(chǎn)環(huán)境的配置文件。我們在該文件中配置端口號為 82
server.port=82
  • SpringBoot 只會默認(rèn)加載名為 application.properties 的配置文件,所以需要在 application.properties 配置文件中設(shè)置啟用哪個配置文件,配置如下:
spring.profiles.active=pro

1.3 命令行啟動參數(shù)設(shè)置

使用 SpringBoot 開發(fā)的程序以后都是打成 jar 包,通過 java -jar xxx.jar 的方式啟動服務(wù)的。那么就存在一個問題,如何切換環(huán)境呢?因為配置文件打到的jar包中了。

我們知道 jar 包其實就是一個壓縮包,可以解壓縮,然后修改配置,最后再打成jar包就可以了。這種方式顯然有點麻煩,而 SpringBoot 提供了在運行 jar 時設(shè)置開啟指定的環(huán)境的方式,如下

java –jar xxx.jar –-spring.profiles.active=test

那么這種方式能不能臨時修改端口號呢?也是可以的,可以通過如下方式

java –jar xxx.jar –-server.port=88

當(dāng)然也可以同時設(shè)置多個配置,比如即指定啟用哪個環(huán)境配置,又臨時指定端口,如下

java –jar springboot.jar –-server.port=88 –-spring.profiles.active=test

大家進行測試后就會發(fā)現(xiàn)命令行設(shè)置的端口號優(yōu)先級高(也就是使用的是命令行設(shè)置的端口號),配置的優(yōu)先級其實 SpringBoot 官網(wǎng)已經(jīng)進行了說明,參見 :

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

進入上面網(wǎng)站后會看到如下頁面

如果使用了多種方式配合同一個配置項,優(yōu)先級高的生效。

二、配置文件分類

有這樣的場景,我們開發(fā)完畢后需要測試人員進行測試,由于測試環(huán)境和開發(fā)環(huán)境的很多配置都不相同,所以測試人員在運行我們的工程時需要臨時修改很多配置,如下

java –jar springboot.jar –-spring.profiles.active=test --server.port=85 --server.servlet.context-path=/heima --server.tomcat.connection-timeout=-1 …… …… …… …… ……

針對這種情況,SpringBoot 定義了配置文件不同的放置的位置;而放在不同位置的優(yōu)先級時不同的。

SpringBoot 中4級配置文件放置位置:

  • 1級:resources/application.yml

  • 2級:resources/config/application.yml

  • 3級:target/application.yml

  • 4級:target/config/application.yml

說明:級別越高優(yōu)先級越高

3級與4級留作系統(tǒng)打包后設(shè)置通用屬性

1級與2級用于系統(tǒng)開發(fā)階段設(shè)置通用屬性

2.1 代碼演示

2.1.1 環(huán)境準(zhǔn)備

創(chuàng)建一個名為 springboot_06_config_fileSpringBoot 工程,,參考SpringBoot快速入門及起步依賴解析,目錄結(jié)構(gòu)如下

resources 下創(chuàng)建一個名為 config 的目錄,在該目錄中創(chuàng)建 application.yml 配置文件,而在該配置文件中將端口號設(shè)置為 81,內(nèi)容如下

server:
  port: 81

而在 resources 下創(chuàng)建的 application.yml 配置文件中并將端口號設(shè)置為 80,內(nèi)容如下

server:
  port: 80

2.1.2 驗證1級和2級的優(yōu)先級

運行啟動引導(dǎo)類,可以在控制臺看到如下日志信息

通過這個結(jié)果可以得出類路徑下的 config 下的配置文件優(yōu)先于類路徑下的配置文件。

2.1.3 驗證2級和4級的優(yōu)先級

要驗證4級,按照以下步驟完成

將工程打成 jar

點擊工程的 package 來打 jar

在硬盤上找到 jar 包所在位置

  • jar 包所在位置創(chuàng)建 config 文件夾,在該文件夾下創(chuàng)建 application.yml 配置文件,而在該配合文件中將端口號設(shè)置為 82

在命令行使用以下命令運行程序

java -jar springboot_06_config_file-0.0.1-SNAPSHOT.jar

運行后日志信息如下

通過這個結(jié)果可以得出file: config 下的配置文件優(yōu)先于類路徑下的配置文件。

注意:

SpringBoot 2.5.0版本存在一個bug,我們在使用這個版本時,需要在 jar 所在位置的 config 目錄下創(chuàng)建一個任意名稱的文件夾

到此這篇關(guān)于SpringBoot多環(huán)境配置及配置文件分類的文章就介紹到這了,更多相關(guān)SpringBoot多環(huán)境配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot集成shiro詳細教程(小結(jié))

    spring boot集成shiro詳細教程(小結(jié))

    這篇文章主要介紹了spring boot 集成shiro詳細教程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • spring cloud config 配置中心快速實現(xiàn)過程解析

    spring cloud config 配置中心快速實現(xiàn)過程解析

    這篇文章主要介紹了spring cloud config 配置中心快速實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 淺談JSONObject的使用及示例代碼(JSON解析)

    淺談JSONObject的使用及示例代碼(JSON解析)

    這篇文章主要介紹了淺談JSONObject的使用及示例代碼(JSON解析),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 詳解SpringBoot中的index首頁的訪問、自定義Favicon圖標(biāo)

    詳解SpringBoot中的index首頁的訪問、自定義Favicon圖標(biāo)

    這篇文章主要介紹了SpringBoot中的index首頁的訪問、自定義Favicon圖標(biāo),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解

    Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解

    這篇文章主要介紹了Spring boot @RequestBody數(shù)據(jù)傳遞過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java實現(xiàn)添加、驗證PDF數(shù)字簽名的方法示例

    Java實現(xiàn)添加、驗證PDF數(shù)字簽名的方法示例

    在設(shè)置文檔內(nèi)容保護的方法中,除了對文檔加密、添加水印外,應(yīng)用數(shù)字簽名也是一種有效防偽手段。本文就使用Java實現(xiàn)添加、驗證PDF數(shù)字簽名,感興趣的可以了解一下
    2021-07-07
  • SpringMVC JSON數(shù)據(jù)傳輸參數(shù)超詳細講解

    SpringMVC JSON數(shù)據(jù)傳輸參數(shù)超詳細講解

    有時候參數(shù)的傳遞還需要更多的參數(shù),比如一個獲取用戶信息的請求中既有用戶ID等基本參數(shù),還要求對查詢結(jié)果進行分頁,針對這種場景,一般都會將分頁參數(shù)封裝成一個對象,然后將它和基本參數(shù)一起傳給控制器
    2023-02-02
  • Java 中Json中既有對象又有數(shù)組的參數(shù)如何轉(zhuǎn)化成對象(推薦)

    Java 中Json中既有對象又有數(shù)組的參數(shù)如何轉(zhuǎn)化成對象(推薦)

    Gson庫是一個功能強大、易于使用的Java序列化/反序列化庫,它提供了豐富的API來支持Java對象和JSON之間的轉(zhuǎn)換,這篇文章主要介紹了Java 中Json中既有對象又有數(shù)組的參數(shù)如何轉(zhuǎn)化成對象,需要的朋友可以參考下
    2024-07-07
  • SpringMVC超詳細介紹自定義攔截器

    SpringMVC超詳細介紹自定義攔截器

    Spring?MVC?的攔截器(Interceptor)與?Java?Servlet?的過濾器(Filter)類似,它主要用于攔截用戶的請求并做相應(yīng)的處理,通常應(yīng)用在權(quán)限驗證、記錄請求信息的日志、判斷用戶是否登錄等功能上。本文將代碼演示和文字描述詳解攔截器的原理與使用
    2022-06-06
  • java實現(xiàn)Dijkstra算法

    java實現(xiàn)Dijkstra算法

    這篇文章主要為大家詳細介紹了java實現(xiàn)Dijkstra算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評論