参考:https://blog.csdn.net/wasd986523/article/details/120249547
参考:YAML文件(.yml)中的键(key)通过变量引用来设置 - i江湖中人 - 博客园
通过变量引用设置配置量的【值(value)】
在YAML文件中,一个配置量的值可以通过引用另一个变量来设置。例如:
`
1. default-db:
2. port: 3306
4. user-db:
5. port: ${default-db.port}
`
但是,如果想通过变量引用设置键,通过${}是做不到的。例如:
`
1. site:
2. url:
3. user: www.user.net
4. shop: www.shop.net
6. site:
7. slogan:
8. ${site.url.user}: everyone is great!
9. ${user.url.shop}: buy anything you want!
`
在将配置读入程序中之后,你会发现上述的${}引用,并没有替换成真正的值。
通过锚点引用设置配置量的【键(key)】
要想替换键,则需要用到锚点。锚点用符号“&”定义,并用符号“*”进行引用。
锚点有两种使用方式,一是通过“<<:”将键值对一起引入:
`
1. default-db: &default-db-config
2. host: 127.0.0.1
3. port: 3306
5. user-db:
6. <<: *default-db-config
`
其实际效果如:
`
1. default-db:
2. host: 127.0.0.1
3. port: 3306
5. user-db:
6. host: 127.0.0.1
7. port: 3306
`
说明:&后面的锚点名字,可自己定义,不必与配置量的键相同。
另一种是仅引入配置的值:
`
1. site:
2. url:
3. user: &site.user www.user.net
4. shop: &site.shop www.shop.net
6. site:
7. slogan:
8. *site.user: everyone is great!
9. *site.shop: buy anything you want!
`
其实际效果如:
`
1. site:
2. url:
3. user: www.user.net
4. shop: www.shop.net
6. site:
7. slogan:
8. www.user.net: everyone is great!
9. www.shop.net: buy anything you want!
`
说明:用&定义锚点时,注意锚点名前后的空格。
另一个仅引入值例子:
`
1. color:
2. - &red-color red
3. - yellow
4. - blue
5. - *red-color
6. - gray
`
其实际效果如:
`
1. color:
2. - red
3. - yellow
4. - blue
5. - red
6. - gray
`
参考文档: