如何在Spring中把地图条目从yaml转换成属性?

在我的地图中,我有以下属性列表 application.yml:

foo: 
  bar: 
    - 
      id: baz
      item: value
    // ...

那我想覆盖 item 值的测试中,使用 @DynamicPropertySource:

    @DynamicPropertySource
    @JvmStatic
    @Suppress("unused")
    fun setupProperties(registry: DynamicPropertyRegistry) {
        registry.add("foo.bar[0].item") { "new value" }
    }

但在测试过程中,我把所有其他属性都设置为空,其中有一个元素是在 bar 数组。

我想我没有正确地参考地图条目在 yaml 我不知道如何才能做到这一点?

解决方案:

原来Spring Boot文档中明确指出。

当列表配置在多个地方时,覆盖的作用是替换整个列表。

https:/docs.spring.iospring-bootdocscurrentreferencehtmlsingle#boot-features-external-config-complex-type-merge。

这实际上意味着,我需要提供整个列表项目。

@DynamicPropertySource
@JvmStatic
@Suppress("unused")
fun setupProperties(registry: DynamicPropertyRegistry) {
    registry.add("foo.bar[0].id") { "new baz" }
    registry.add("foo.bar[0].item") { "new value" }
    // ...
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

文件上传与mysql不工作

2022-9-9 5:19:17

未分类

vue-router的问题,不能渲染我的组件,而且没有错误[已解决] 。

2022-9-9 5:19:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索