springboot系列-springboot配置文件讀取

引言

springboot支持多種配置文件讀取方式,瞭解這些方式有助於查詢和定位問題以及選擇合適的方式進行開發。

一、配置文件位置

springboot默認的配置文件是application.properties,其存放的位置可以有以下幾種,從上到下按照優先級排序如下,注意,當存在重複的配置文件時,高優先級的的將會覆蓋低優先級的。

  1. 當前jar包所在目錄下的config目錄
  2. 當前jar所在目錄
  3. classpath下的config目錄
  4. classpath根路徑

二、自定義配置文件

若不想使用默認的application.properties配置文件,也可以自定義配置文件名,有兩種方式:

  • 在啓動springboot應用時傳入如下參數表示使用根路徑下的application1.properties和application2.properties。
    spring.config.location=classpath:application1.properties,classpath:application2.properties
  • 使用@PropertySource註解來選擇自定義的配置文件,例如如下表示讀取根路徑下的myconfig目錄下的test.properties配置文件@PropertySource("classpath:myconfig/test.properties")

三、屬性注入

  • @Component配置@Value將屬性值進行注入
  • @Component或者@Configuration配合@ConfigurationProperties(prefix = "codingway")註解在類上,將能夠將屬性名稱爲codingway.name的屬性注入到name字段中,prefix表示配置項的前綴爲codingway
@Component
@ConfigurationProperties(prefix = "codingway")
public class Configuration { 
private String name;
//need set and get method
}

這裏可以一次性將所有的配置全部加載進入配置文件,然後在使用到的類中注入Configuration 實例,使用get方法獲取屬性。

四、配置多環境

在實際工作中,需要根據開發、測試和生產配置不同環境的配置文件。可以在合適的路徑下(見第一節配置文件位置)存放application-dev.properties,application-test.properties,application-prod.properties三個配置文件分別代表三個不同的環境,在springboot應用啓動時傳入指定的參數,例如--spring.profiles.active=prod指定使用application-prod.properties文件,另外也可以採用將spring.profiles.active=prod配置到系統環境變量中,使用--spring.config.location=../config/application-{spring.profiles.active}.properties,springboot還支持加載多個不同的配置文件,例如
--spring.profiles.active=prod,test

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章