yml引用其他变量

参考: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
    

`


参考文档:

posted @ 2022-11-11 15:54  狂客  阅读(515)  评论(0编辑  收藏  举报