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

