Spring Boot對配置文件支持非常友好,支持
*.properties和*.yml,前者是常用的配置文件,后者是Spring Boot推薦的配置文件。
一、Spring Boot支持的配置文件
Spring Boot支持兩種配置文件,一個是常見的.properties格式,另外一個就是專有的.yml或者*.yaml格式。一般兩者的命名都是application。
二、配置隨機(jī)值
這里是介紹如何配置隨機(jī)值等數(shù)值,可根據(jù)實際情況配置。兩種配置方式是等效的,實際選擇其中一種即可,推薦使用*.yml。
1)application.properties
lemon.secret=${random.value}
# 獲取一個隨機(jī)整數(shù)
lemon.number=${random.int}
# 獲取一個隨機(jī)長整數(shù)
lemon.bignumber=${random.long}
# 獲取一個隨機(jī)0~10的隨機(jī)整數(shù)
lemon.number.less.than.ten=${random.int(10)}
# 獲取指定區(qū)間范圍的隨機(jī)整數(shù)
lemon.number.in.range=${random.int[1024,65536]}
2)application.yml
# 配置文件的設(shè)置
# 配置文件中是可以配置隨機(jī)值的
lemon:
secret: ${random.value}
number: ${random.int}
bignumber: ${random.long}
number1:
less:
than: ${random.int(10)}
in:
range: ${random.int[1,10]}
注意:冒號后面都有一個空格。
加載Spring Boot應(yīng)用時,會自動加載配置文件,在controller中獲取配置文件中值的方式是通過@Value這個注解,@Value(value = "${lemon.secret}")。
三、屬性占位符
當(dāng)application.properties里的值被使用時,它們會被存在的Environment過濾,所以你能夠引用先前定義的值(比如,系統(tǒng)屬性)。
lemon.name=www.cug.edu.cn
lemon.desc=${lemon.name} is a domain name
yml配置文件中設(shè)置方法一致。
四、其他屬性配置
# 端口配置
server.port=8090
# 時間格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 時區(qū)設(shè)置
spring.jackson.time-zone=Asia/Chongqing
這是配置一些常見的公共屬性。yml格式的配置文件配置如下:
# 端口配置
server:
port: 8080
# 時區(qū)和時間格式化
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: Asia/Chongqing
五、多文件配置
1、多環(huán)境配置文件的好處:
1)不同環(huán)境配置可以配置不同的參數(shù)
2)便于部署,提高效率,減少出錯
2、Properties多環(huán)境配置
1)配置激活選項 spring.profiles.active=dev,可以修改值來確定不同的環(huán)境配置
2)添加其他配置文件
application.properties
application-dev.properties
application-test.properties
application-pro.properties
更改激活選項,就可以加載激活不同的環(huán)境配置文件。公共的配置信息可以寫在application.properties文件中。
3、YAML多環(huán)境配置
spring:
profiles:
active: pro
# 時區(qū)和時間格式化
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: Asia/Chongqing
---
spring:
profiles: dev
# 端口配置
server:
port: 8080
---
spring:
profiles: pro
# 端口配置
server:
port: 8081
---
spring:
profiles: test
# 端口配置
server:
port: 8082
更改激活選項的值就可以啟動不同的環(huán)境配置。不同的配置使用三個橫杠(-)區(qū)分即可。其實這是一種單文件多配置的一種體現(xiàn)方式。
4、兩種配置方法的比較
Properties配置多環(huán)境,需要添加多個配置文件,YAML只需要一個配件文件
書寫格式的差異,yaml相對比較簡潔,優(yōu)雅
YAML的缺點(diǎn):不能通過@PropertySource注解加載。如果需要使用@PropertySource注解的方式加載值,那就要使用properties文件。
5、如何使用
在命令行啟動:java -jar myapp.jar --spring.profiles.active=dev