.yml是什么文件(編寫規(guī)則)
一、YML是什么
- YAML (YAML Aint Markup Language) 是一種標(biāo)記語(yǔ)言,
- 通常以.yml為后綴的文件
- 是一種直觀的能夠被電腦識(shí)別的數(shù)據(jù)序列化格式
- 容易被人類閱讀 容易和腳本語(yǔ)言交互的
- 可以被支持YAML庫(kù)的不同的編程語(yǔ)言程序?qū)?/li>
- 一種專門用來(lái)寫配置文件的語(yǔ)言。 可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等
- yaml語(yǔ)言者說(shuō)是一種規(guī)范
二、 編寫規(guī)則
1.基本語(yǔ)法
- k: v 表示鍵值對(duì)關(guān)系,冒號(hào)后面必須有一個(gè)空格
- 使用空格的縮進(jìn)表示層級(jí)關(guān)系,空格數(shù)目不重要,只要是左對(duì)齊的一列數(shù)據(jù),都是同一個(gè)層級(jí)的
- 縮進(jìn)時(shí)不允許使用Tab鍵,只允許使用空格。
- 大小寫敏感
- “”: 雙引號(hào);不會(huì)轉(zhuǎn)義字符串里面的特殊字符,name: “zhangsan \n lisi”:輸出;zhangsan 換行 lisi
- ‘’:?jiǎn)我?hào);會(huì)轉(zhuǎn)義特殊字符,特殊字符最終只是一個(gè)普通的字符串?dāng)?shù)據(jù)
松散表示,java中對(duì)于駝峰命名法,可用原名或使用-代替駝峰,如java中的 lastName屬性,在yml中使用lastName或 last-name都可正確映射
name1: zhangsan name2: 'zhangsan \n lisi' name3: "zhangsan \n lisi" age: 18 flag: true # 日期 date: 2019/01/01 # 對(duì)象屬性關(guān)系 people: name: zhangsan age: 20 # 行內(nèi)寫法 people: {name:zhangsan,age: 20} # 數(shù)組寫法 pets: - dog - pig - cat # 數(shù)組行內(nèi)寫法 pets: [dog,pig,cat]
2. 對(duì)比Json差別
- 大小寫敏感 (json 里也是大小寫敏感的)
- 使用縮進(jìn)表示層級(jí)關(guān)系 (json 中使用 {} 表示層級(jí))
- "#"表示注釋 (json 不允許寫注釋, yaml 寫的配置文件要比 json 方便很多)
- 對(duì)象
# conf.yml animal: pets hash: { name: Steve, foo: bar }
轉(zhuǎn)json
{ { "animal": "pets" }, { "hash": { "name": "Steve", "foo": "bar" } } }
數(shù)組 / 字符串 / null
# conf.yml Animal: - Cat - Dog - Goldfish # 正常情況下字符串不用寫引號(hào) str: 這是一行字符串 # 字符串內(nèi)有空格或者特殊字符時(shí)需要加引號(hào) str: '內(nèi)容: 字符串' parent: ~ # null
轉(zhuǎn)json
{ "Animal": [ "Cat", "Dog", "Goldfish"], "str": "內(nèi)容: 字符串", "parent": null }
3. 對(duì)比Java事例代碼
public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Dog> lists; private Dog dog; private String[] arr; } public class Dog { private String name; private Integer age; } 對(duì)應(yīng)的yml person: boss: false maps: k1: v1 k2: 14 lists: - name: d1 age: 2 - name: d2 age: 3 - {name: d3,age: 4} birth: 2017/12/15 dog: name: p_dog age: 15 age: 13 last-name: 張三 arr: [s1,s2,s3]
4. 文檔塊
對(duì)于測(cè)試環(huán)境,預(yù)生產(chǎn)環(huán)境,生產(chǎn)環(huán)境可以使用不同的配置,如果只想寫到一個(gè)文件中,yml與是支持的,每個(gè)塊用----隔開(kāi)
server: port: 8081 spring: profiles: active: prod #激活對(duì)應(yīng)的文檔塊 --- server: port: 8083 spring: profiles: dev #指定屬于哪個(gè)環(huán)境 --- server: port: 8084 spring: profiles: prod #指定屬于哪個(gè)環(huán)境
三、YML的優(yōu)點(diǎn)
- 易于閱讀 數(shù)據(jù)在編程語(yǔ)言之間是可移植性強(qiáng)
- 匹配敏捷語(yǔ)言的本機(jī)數(shù)據(jù)結(jié)構(gòu)
- 具有一致的模型來(lái)支持通用工具
- 支持單程處理。
- 具有表現(xiàn)力和可擴(kuò)展性
- 易于實(shí)現(xiàn)和使用
到此這篇關(guān)于.yml是什么文件的文章就介紹到這了,更多相關(guān).yml是什么文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Visual Studio 2022 集成 GIT 使用圖文教程
本文詳細(xì)介紹了VisualStudio2022與GIT集成的操作步驟,包括下載GIT、安裝和配置GIT、以及如何在VisualStudio2022中下載GIT項(xiàng)目和上傳項(xiàng)目到GIT服務(wù)器,感興趣的朋友跟隨小編一起看看吧2024-09-09VS2022如何調(diào)出輸出窗口并在輸出窗口打印日志
這篇文章主要介紹了VS2022如何調(diào)出輸出窗口并在輸出窗口打印日志的相關(guān)資料,包括打開(kāi)輸出窗口的快捷鍵、清空輸出窗口的方法以及使用輸出過(guò)濾文檔進(jìn)行更精細(xì)的調(diào)試控制,需要的朋友可以參考下2024-12-12簡(jiǎn)單談?wù)凣ET和POST有什么區(qū)別
本文給大家總結(jié)了下get與post的具體區(qū)別,以及網(wǎng)上的那么多答案為什么都是錯(cuò)誤的,非常的實(shí)用,這里推薦給大家2016-06-06