[英]Spring Boot - extend yml configuration with custom yml tags
我需要将 yaml 锚引用与application.yml
中的字符串连接一起用于 Spring 引导应用程序。 动机是重用现有配置而不是复制它们。 例如,我们有以下application.yml
:
sources:
- filter:
expression: &mainFilter
level > 100
- filter:
expression: *mainFilter
- filter:
expression: *mainFilter and level < 200
我需要将其解决为以下问题:
sources:
- filter:
expression: &mainFilter
level > 100
- filter:
expression: level > 100
- filter:
expression: level > 100 and level < 200
expression: *mainFilter
将被正确解析,因为它是 yml 锚点,但expression: *mainFilter and level < 200
将不起作用,因为 yml 不支持具有串联的锚点(应用程序将在应用程序启动时失败)。 根据yml string concatenation with custom tags ,yml 具有我们可以定义的自定义标签的概念,例如expression: ,concat [*mainFilter, 'and level < 200']
。 是否可以在 Spring Boot yml 配置中定义和注册我们自己的自定义标签?
我有同样的需求——从现有的属性值中组合新的属性值——在像你一样首先想到它需要自定义标签之后,在 spring 中,你可以使用属性占位符:
mainFilter: "level > 100"
sources:
- filter:
expression: ${mainFilter}
- filter:
expression: "${mainFilter} and level < 200"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.