如何将 yaml 中的地图条目转换为 Spring 中的 属性?
How to convert map entry from yaml into property in Spring?
我的 application.yml
中有以下 属性 列表:
foo:
bar:
-
id: baz
item: value
// ...
然后我想使用 @DynamicPropertySource
:
覆盖测试中的 item
值
@DynamicPropertySource
@JvmStatic
@Suppress("unused")
fun setupProperties(registry: DynamicPropertyRegistry) {
registry.add("foo.bar[0].item") { "new value" }
}
但是在测试期间,我将所有其他属性设置为空值,bar
数组中有一个元素。
我想我没有正确引用 yaml
文件中的地图条目。
我想知道我该怎么做?
原来Spring引导文档说的很清楚:
When lists are configured in more than one place, overriding works by replacing the entire list.
这实际上意味着我需要提供整个列表项:
@DynamicPropertySource
@JvmStatic
@Suppress("unused")
fun setupProperties(registry: DynamicPropertyRegistry) {
registry.add("foo.bar[0].id") { "new baz" }
registry.add("foo.bar[0].item") { "new value" }
// ...
}
我的 application.yml
中有以下 属性 列表:
foo:
bar:
-
id: baz
item: value
// ...
然后我想使用 @DynamicPropertySource
:
item
值
@DynamicPropertySource
@JvmStatic
@Suppress("unused")
fun setupProperties(registry: DynamicPropertyRegistry) {
registry.add("foo.bar[0].item") { "new value" }
}
但是在测试期间,我将所有其他属性设置为空值,bar
数组中有一个元素。
我想我没有正确引用 yaml
文件中的地图条目。
我想知道我该怎么做?
原来Spring引导文档说的很清楚:
When lists are configured in more than one place, overriding works by replacing the entire list.
这实际上意味着我需要提供整个列表项:
@DynamicPropertySource
@JvmStatic
@Suppress("unused")
fun setupProperties(registry: DynamicPropertyRegistry) {
registry.add("foo.bar[0].id") { "new baz" }
registry.add("foo.bar[0].item") { "new value" }
// ...
}