Jed*_*edo 1 variables spring yaml config properties
我有属性文件 application-dev.yml ,内容如下:
spring.profiles: dev
config:
value: test
property: test2
foo:
value: test
property: test2
bar:
value: test
property: test2
Run Code Online (Sandbox Code Playgroud)
我的属性有一些冗余值,如果我想更改test为blah和test2to blah2,我必须转到文本的每个实例并更改它。
有什么方法可以(用Java术语)声明一个变量并将其分配给“test”,然后在整个yaml文件中使用该变量,以便我可以合并文本并使其在将来需要时更容易更改?
YAML 确实有锚点和别名,它们允许您通过给定锚点来识别某个值,然后使用别名再次引用它:
\nspring.profiles: dev\nconfig:\n value: &a test\n property: &b test2\nfoo:\n value: *a\n property: *b\nbar:\n value: *a\n property: *b\nRun Code Online (Sandbox Code Playgroud)\n请注意,这与变量不同。YAML 序列化节点图,这是最常见的形式,即不使用锚/别名,树结构。您可以使用锚点和别名来序列化任何有向图结构,包括循环图。这就是该功能的用途。
\n与变量的区别在于,您没有值 \xe2\x80\x93 的定义,而是将锚点添加到该值的第一次出现。然后您可以在后续事件中引用它。其他差异包括您无法以任何方式处理该值,例如通过字符串连接或插值。例如,如果您希望某个键具有值testtest2,则无法通过别名*a和来表达*b。