1. 程式人生 > >spring boot之配置詳解

spring boot之配置詳解

spring boot支援的配置檔案
spring boot支援兩種型別的配置檔案,一種是傳統的預設配置檔案application.properties ,還有一種是現在被廣泛推薦使用的YAML檔案。書寫上properties是採用鍵值對的形式來表示,而YAML是以類似大綱的縮排形式,這使得YAML表現形式更為清晰易讀, 同時配置內容的字元量也得到顯著減少:

environments:
	dev:
		url: http://dev.bar.com
		name: Developer Setup
	prod:
		url: http://foo.bar.com
		name: My Cool App

等效於

environments.dev.url=h七tp://dev.bar.com
environments.dev.name=Developer Setup
environments.prod.url=http://foo.bar.com
environments.prod.name=My Cool App

自定義引數
除了可以在Spring Boot 的配置檔案中設定各個Starter 模組中預定義的配置屬性, 也可以在配置檔案中定義一些我們需要的自定義屬性。比如在application.properties 中新增:

blog.name=springboot
blog.author=stryang

然後, 在應用中可以通過@Value 註解來載入這些自定義的引數, 比如:

@Component
public class Blog{
	@Value("${blog.name}")
	private String name;
	@Value("${blog.author}")
	private String author;
	//省略getter和setter
}

@Value 註解載入屬性值的時候可以支援兩種表示式來進行配置:

  • 一種是上面介紹的PlaceHolder 方式,格式為${},大括號內為PlaceHolder。
  • 另一種是使用SpEL 表示式(Spring Expression Language), 格式為#{},大括號內為SpEL 表示式。

引數引用
在application.properties中的各個引數之間可以直接通過使用PlaceHolder 的方式來進行引用:

blog.name=springboot
blog.author=stryang
blog.desc=${blog.author} is writing《${blog.name}》

使用隨機數
在一些特殊情況下, 我們希望有些引數每次被載入的時候不是一個固定的值, 比如金鑰、服務埠等。在SpringBoot的屬性配置檔案中, 可以通過使用${random}配置來產生隨機的int值、long值或者string字串,這樣我們就可以容易地通過配置隨機生成屬性,而不是在程式中通過編碼來實現這些邏輯。

${random}的配置方式主要有以下幾種, 讀者可作為參考使用。
#隨機字串
com.didispace.blog.value=${random.value}
#隨機int
com.didispace.blog.number=${random.int}
#隨機long
com.didispace.blog.bignumber=${random.long}
# 10以內的隨機數
com.didispace.blog.tes七1=${random.int(l0)}
# 10-20的隨機數
com.didispace.blog.test2=${random.int[l0,20]}

該配置方式可以設定應用埠等場景, 以避免在本地除錯時出現埠衝突的麻煩。