我正在application.yaml
中配置spring-boot-kafka流。我需要配置输出主题的属性:
producer:
topic.properties:
cleanup.policy: compact
retention.ms: 604800000
因为我在整个文件中都有相同的配置,所以我想在哪里定义值:
my:
policy: compact
retention: 604800000
producer:
topic.properties:
cleanup.policy: ${my.policy}
retention.ms: ${my.retention}
但topic.properties
只是传递给底层kafka库的通用映射。为了使配置更加灵活,我想参考producer.topic.properties
中的my
部分。因此,当添加新的kafka属性时,只更新my
部分。
我试过了:
producer:
topic.properties: ${my}
但这不起作用——${my}
被my.toString()
取代,并且在需要Map的位置获取String时配置失败。
我在找一些章节占位符。例如,在OpenAPI规范中,您可以执行类似的操作:
my:
policy: compact
retention: 604800000
producer:
topic.properties:
$ref: '/my'
我知道基本的YAML不支持引用。但是spring-boot
中是否有允许引用其他配置部分的内容?
您可以引用其他属性,但每次只能引用一个:
my:
policy: compact
retention: 604800000
producer:
topic.properties:
policy: ${my.policy}
retention: ${my.retention}