Quarkus Kotlin嵌套配置组失效:PropertiesConfigSource无对应根
Quarkus Kotlin嵌套配置组映射报错解决
在Kotlin环境下使用Quarkus实现配置到对象的映射时,普通场景可正常运行,但使用嵌套配置组时会触发「PropertiesConfigSource未映射到任何根」错误。
错误代码示例
FooProperties.kt
@ConfigMapping(prefix = "foo") interface FooProperties { interface Bar { fun baz(): String } }
application.properties
foo.bar.baz=hello
解决方案
修复后的配置映射接口需要在根接口中暴露嵌套配置组的访问方法,让Quarkus能识别嵌套配置与根配置的关联关系:
@ConfigMapping(prefix="foo") interface FooProperties { fun bar(): Bar interface Bar { fun baz(): String } }
错误原因在于原代码仅定义了嵌套的Bar接口,但未在根配置接口FooProperties中声明对应的获取方法,导致Quarkus无法将foo.bar.baz这条配置关联到根配置上。添加fun bar(): Bar后,配置路径就能正确映射到嵌套的Bar接口中的属性。
内容的提问来源于stack exchange,提问作者user163588
相关产品推荐
相关产品推荐

