Spring Boot的配置文件可以使用傳統(tǒng)的properties
文件格式或yaml
文件格式,建議選擇yaml
格式伏穆,多學點知識總是有好處的窥妇,更何況yaml
格式的好處還挺多的(YAML 語言教程 - 阮一峰的網絡日志)就谜。](http://www.ruanyifeng.com/blog/2016/07/yaml.html))把沼。)
本文檔中所有示例都使用yaml
格式的配置文件,配置文件名為application.yaml
吁伺。properties
配置文件與此區(qū)別不大。
自定義屬性與加載
我們可以在配置文件中使用如下方式定義屬性
blog.name: bfsong的專欄
然后在代碼中通過@Value("${屬性名稱}")
注解來注入對應的屬性值
@Component
public class Blog {
@Value("${blog.name}")
private String name;
...
}
參數間的引用
配置文件中的各個參數之間可以直接引用
blog.name = bfsong的專欄
blog.title = Spring Boot筆記 - ${blog.name}
使用隨機數
有些參數我們可能會希望它不是一個固定的值租谈,這時可以使用random
來生成隨機的int篮奄、long或string值。
# 隨機字符串
blog.value: ${random.value}
# 隨機int
blog.number: ${random.int}
# 隨機long
blog.bignumber: ${random.long}
# 10以內的隨機數
blog.test1: ${random.int(10)}
# 10-20的隨機數
blog.test2: ${random.int[10,20]}
# uuid
blog.uuid: ${random.uuid}
通過命令行設置屬性值
Spring Boot應用可以通過java -jar xxx.jar --propertyname=value
這樣的形式在啟動時為屬性分配不同的值割去。這給予了我們在啟動應用時修改配置屬性值的能力窟却。
另外,Spring Boot也可以通過以下語句來屏蔽在啟動應用時修改屬性值:
SpringApplication.setAddCommandLineProperties(false)
配置文件路徑
Spring應用從以下路徑中加載配置文件呻逆,按以下優(yōu)先級順序(由高到低)夸赫,高級別的會覆蓋低級別的配置項。
1. 當前目錄下的/config
目錄
2. 當前目錄
3. classpath下的/config
目錄
4. classpath根目錄
多環(huán)境配置
通常應用都會被安裝到幾個不同的環(huán)境(比如開發(fā)咖城、測試茬腿、生產等),每個環(huán)境都會有一些參數是不一樣的宜雀。
Spring Boot對此也提供了支持切平,配置文件的名稱只要滿足application-{profile}.yaml
格式即可,其中{profile}
對應環(huán)境的標識:
application-dev.yaml
: 開發(fā)環(huán)境application-test.yaml
: 測試環(huán)境application-prod.yaml
: 生產環(huán)境
之后辐董,需要在application.yaml
中設置配置屬性spring.profiles.active
悴品,其值對應{profile}
的值。
如:spring.profile.active: dev
简烘,此時就會加載application.yaml
和application-dev.yaml
這兩個配置文件的內容苔严,兩個文件中如有相同屬性,會使用application-dev.yaml
中的值孤澎。