天天看點

SpringBoot配置檔案

1、SpringBoot配置檔案

<code>SpringBoot</code>配置檔案,對于<code>SpringBoot</code>的預設配置來說,如果預設配置不适用實際運用的場景情況下,可以使用配置檔案覆寫預設配置,比如内嵌的<code>Tomcat</code>預設端口是<code>8080</code>,就可以使用配置檔案将預設配置覆寫。另外我們在項目中,有可能封裝一些通用SDK,也可以使用配置檔案來處理。

<code>SpringBoot</code>支援的配置可以檢視官網文檔:application-properties

<code>SpringBoot</code>提供了兩種配置檔案類型:<code>properties</code>和<code>yml</code>(而<code>yml</code>也可以寫成<code>yaml</code>)。預設配置檔案名稱為:<code>application</code>,放在<code>resources</code>目錄下。這兩種配置檔案在同一級的優先級為:<code>properties</code>&gt;<code>yml</code>&gt;<code>yaml</code>

比如把預設端口改為<code>8088</code>,上面通路路徑為<code>http://localhost:8080/v1/index</code>,按照之前的習慣,通常是主機後面會跟項目名,也可以通過配置檔案配置。

使用<code>yaml</code>方式配置:

注意:<code>yaml</code>的配置方式<code>:</code>号後面必須有空格。

簡單介紹下<code>yaml</code>的基本文法:

大小寫敏感

資料值前面必須有空格(也就是<code>:</code>号後面),作為分隔符

使用縮進表示層級關系

縮進時不允許使用<code>Tab</code>鍵,隻允許使用空格(因為各個系統<code>Tab</code>對應的空格數目可能不同,導緻層級混亂)

縮進的空格數目不重要,隻要相同層級的元素左對齊就行

<code>#</code>表示注釋,從這個字元到行尾,都會被解析器忽略

<code>yaml</code>的資料格式:

對象(map): 鍵值對的集合

數組:一組按次排列的值

純量:單個的、不可再分的值

<code>yaml</code>參數引用:

有時候在配置一個參數,想被多個地方引用,可以這樣配置:

使用<code>properties</code>配置:

注意:配置<code>context-path</code>必須是<code>/</code>開頭

啟動項目從日志輸出:

這個時候我們的通路路徑就是:<code>http://localhost:8088/spring-boot/v1/index</code>

2、讀取配置内容

在實際開發時,有時候需要做一些初始化的自定義配置,那麼怎麼在代碼裡面擷取到配置檔案的自定義配置,比如自定義配置<code>name: zhangsan</code>。讀取配置内容有如下三種方式:

使用注解<code>@Value</code>

通路結果:<code>Hello zhangsan Spring Boot!</code>,使用<code>@Value</code>注解就可以擷取配置檔案的自定義配置,<code>:</code>後面表示預設值,如果配置檔案沒有配置,則取預設值。

Environment

輸出結果:<code>使用Environment擷取配置name:zhangsan</code>

@ConfigurationProperties

定義一個<code>User</code>類

必須使用<code>@Component</code>和<code>@ConfigurationProperties</code>注解,<code>@Data</code>是使用了<code>lombok</code>插件。如果需要使用<code>lombok</code>,需要在IDEA安裝<code>Lombok</code>插件,引入<code>lombok</code>依賴

配置檔案如下配置:

在<code>controller</code>中使用

輸出結果:<code>User{name='admin', age=12, address=[sichuan, hunan]}</code>

3、使用Profile多環境切換

在實際開發場景中,我們一般有開發、測試、生産環境,每個環節的某些配置會不一樣,那麼怎麼來解決不同環境配置的問題,下面詳細介紹使用<code>Profile</code>多環境的切換。

<code>profile</code>多環境配置方式:

多<code>profile</code>檔案的方式,提供多個配置檔案,每個檔案代表一種環境。

application-dev.properties/yml 開發環境

application-test.properties/yml 測試環境

application-prod.properties/yml 生産環境

<code>yml</code>多文檔方式:

在yml配置檔案中使用<code>---</code>分割不同配置

<code>profile</code>激活多環境方式:

配置檔案,在配置檔案使用配置<code>spring.profiles.active=dev</code>

虛拟機參數:在<code>IDEA</code>的<code>VM options</code>指定:<code>-Dspring.profiles.active=dev</code>

指令行參數:

打包情況下:<code>java -jar xxx.jar --spring.profiles.active=dev</code>

使用<code>IDEA</code>下的<code>Program arguments</code>指定:<code>--spring.profiles.active=dev</code>

多檔案的方式這裡就不做操作了,上面介紹已經說明了,按照标準的檔案格式命名就行,根據實際情況選擇是用<code>properties</code>還是<code>yml</code>的方式。下面介紹下<code>yml</code>多文檔的方式:

至于激活的方式,就參考上面的測試即可。