yaml語法

1.語法規則與數據結構

語法規則

  • 大小寫敏感
  • 縮進表示層級關係
  • 縮進不允許用tab,只允許空格
  • 縮進的空格數無規定,只要保持相同層級的元素左側對齊即可

數據結構

  • 對象:鍵值對,又稱爲映射,哈希,字典
  • 數組:一組按次序排列的值,又稱序列,列表
  • 純量:單個、不可再分的值

2.對象

key: value 冒號後面要加一個空格

也可用 key: {key1: value, key2: value2,…}

key:
   child-key: value
   child-key2: value2

3. 數組

用一個短橫線加一個空格代表一個數組項

pets:
	- cat
	- dog
	
pets:
	-
	   id: 1
	   name: jummy
	-
	   id: 2
	   name: pol

4.複合結構

languages:
	- english
	- Chinese
websites:
	yaml: yaml.org
	baidu: baidu.com

5.純量

  • 字符串
  • 布爾值
  • 整數
  • 浮點數
  • Null
  • 時間
  • 日期
boolean:
	- TRUE #true,True 都可以
	- FALSE #false,False 都可以
float:
	- 3.14
	- 3.1432423e+5 #科學計數法
int:
	- 123
	- 0b1010_0111 #二進制
null:
	nodeName: 'node'
	parent: ~ #使用~表示null
string:
	- haha #字符串不用加單引號或者雙引號
	- 'hello world' #可以使用雙引號或者單引號包裹特殊字符,雙引號不會轉義特殊字符,單引號會轉義
	- newline
	  newline2 #字符串可以拆分成多行,每一行會被轉化成一個空格
date:
	- 2018-02-14 #日期必須使用ISO 8601格式,yyyy-MM-dd
datetime:
	- 2018-02-17T15:02:31+08:00 # 時間使用ISO 8601格式,時間和日期用T鏈接,最後的+代表時區

6.引用

&錨點和 *別名,可以引來引用

defaults: &defaults
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  <<: *defaults

test:
  database: myapp_test
  <<: *defaults

相當於:

defaults:
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  adapter:  postgres
  host:     localhost

test:
  database: myapp_test
  adapter:  postgres
  host:     localhost

& 用來建立錨點(defaults),<< 表示合併到當前數據,***** 用來引用錨點。

- &showell Steve 
- Clark 
- Brian 
- Oren 
- *showell 

相當於

[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]

7.springboot多個配置文件的切換

文件名的格式是:application-{profile}.properties/yml

激活指定的profile

  • 在主配置文件中指定:spring.profiles.active=dev

  • 命令行 java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;

    可以直接在測試的時候,配置傳入命令行參數

  • 虛擬機參數;

    -Dspring.profiles.active=dev

使用yml的文檔塊方式

server:
  port: 8081
spring:
  profiles:
    active: prod
---
server:
  port: 8083
spring:
  profiles: dev
---
server:
  port: 8084
spring:
  profiles: prod  #指定屬於哪個環境
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章