簡介
使用Spring Initializer快捷創建SpringBoot的項目自動生成了一個全局的application.properties配置文件。
一、作用
1、修改SpringBoot自動配置的默認值;
2、添加自定義屬性;
配置文件命名規則 : application-{profile}.properties
。
加載配置文件的特性:springboot啓動會對項目中所有的配置文件都掃描加載,進行互補配置,但在相同配置下有優先級區別,高優先級會覆蓋低優先級的配置
。
二、優先級規則
springboot啓動會自動掃描項目中的所有application-xxx.properties文件,並將根據優先級與互補配置規則選擇springboot的默認配置文件。
比如我們在resources下創建一個config文件夾,裏面也創建一個application.properties的文件。
- 在自己新建配置文件中設置 端口號爲6688
- 在系統自帶配置文件中設置 端口號爲6699,請求路徑/demo
根據運行結果可得規則:優先級高低+互補配置
除此外,SpringBoot還支持很多方法對其配置,比較常用的還有運行時命令行配置:
java -jar xxx-jar --server.port=8077 --server.context-path=/abc
三、常用配置
1、系統的配置文件application.properties:
一般配置端口號、servlet容器、數據庫、redis、進程數、請求超時時間、文件上傳大小等等的配置;
server.servlet.context-path=/demo
spring.server.port=8899
spring.datasource.url=jdbc:oracle:thin:@xxx:0000/DEMO
spring.datasource.username=xxx
spring.datasource.password=xxx
spring.server.MaxFileSize=300MB
spring.server.MaxRequestSize=500MB
當然也可以設置很多其他常量,比如: 在系統的配置文件application.properties中設置一些常量值,然後用一個類取獲取這些值!
a. 設置常量值:
b.給Person類賦值:
c. 測試運行
2、自定義的配置文件: xxx.properties:
主要用於自定義一些公共常量、路徑地址、公共屬性等,比如針對上邊的例子,我們就可以把常量配置提取出來放到自定義的文件中。
這種配置文件SpringBoot是不自動識別的,使用時需要自己通過註解的方法配置。
a. 設置常量值:
b.給Person類賦值:
/**
* 要求:將配置文件中配置的每一個屬性的值都映射到組件中
*
* @ConfigurationProperties(prefix = "person")默認從全局配置文件中取
* @ConfigurationProperties:告訴springboot將本類中的所有屬性和配置文件中相關的配置進行綁定;
* prefix = "person":配置文件中person下的所有屬性進行一一映射
* 只有這個組件是容器中的組件,才能使用容器提供的ConfigurationProperties功能
*
* @PropertySource(value = {"classpath:person.properties"}):加載指定的配置文件
* classpath:person.properties :配置文件的路徑
*/
@Component
@ConfigurationProperties(prefix = "person")
@PropertySource(value = {"classpath:person.properties"})
public class Person {
private String name;
private Integer age;
private String birth;
private Boolean man;
....
}
c. 測試運行
四、多profile文件配置
我們在實際的開發中會配置兩個文件分別對應開發環境與發佈環境。
開發項目時使用生產環境的配置,等到部署正式服務時切換到正式環境的配置;
實際開發過程中一般會新建兩個properties文件:
application.properties: 配置公共屬性
application-dev.properties: 配置開發環境屬性,如測試數據庫信息等
application-pro.properties: 配置發佈環境屬性,如正式數據庫信息等
配置文件的激活方式:
1、在配置文件中指定
spring.profiles.active=dev
2、命令行:
java -jar xxxx.jar --spring.profiles.active=dev
3、手動設置
選擇Edit Configurations
Active profiles:中輸入對應的配置文件profile
效果:
不設置
設置爲dev
設置爲pro