1. 程式人生 > >配置檔案詳解:Properties和YAML

配置檔案詳解:Properties和YAML

一.配置檔案的生效順序,會對值進行覆蓋:

1. @TestPropertySource 註解

2. 命令列引數

3. Java系統屬性(System.getProperties())

4. 作業系統環境變數

5. 只有在random.*裡包含的屬性會產生一個RandomValuePropertySource

6. 在打包的jar外的應用程式配置檔案(application.properties,包含YAML和profile變數)

7. 在打包的jar內的應用程式配置檔案(application.properties,包含YAML和profile變數)

8. 在@Configuration類上的@PropertySource註解

9. 預設屬性(使用SpringApplication.setDefaultProperties指定)

二.配置隨機值

roncoo.secret=${random.value}

roncoo.number=${random.int}

roncoo.bignumber=${random.long}

roncoo.number.less.than.ten=${random.int(10)}

roncoo.number.in.range=${random.int[1024,65536]}

讀取使用註解:@Value(value = "${roncoo.secret}")

注:出現黃點提示,是要提示配置元資料,可以不配置

三.屬性佔位符

當application.properties裡的值被使用時,它們會被存在的Environment過濾,所以你能夠引用先前定義的值(比如,系統屬性)。

roncoo.name=www.roncoo.com

roncoo.desc=${roncoo.name} is a domain name

四.Application屬性檔案,按優先順序排序,位置高的將覆蓋位置低的

1. 當前目錄下的一個/config子目錄

2. 當前目錄

3. 一個classpath下的/config包

4. classpath根路徑(root)

這個列表是按優先順序排序的(列表中位置高的將覆蓋位置低的)

五. 配置應用埠和其他配置的介紹

     #埠配置:

server.port=8090

#時間格式化

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

#時區設定

spring.jackson.time-zone=Asia/Chongqing

六. 使用YAML代替Properties

     注意寫法:冒號後要加個空格