[apache/dubbo]SpringBoot的application.yaml配置中超过两层的没提示

2023-12-18 204 views
9
Environment
  • Dubbo version: 3.2.0
  • Operating System version: Win11
  • Java version: 1.8

image

目测是dubbo的@Nested注解与spring的@NestedConfigurationProperty没有对齐 image

回答

6

需要手动生成一份配置文件的xml

9

Springboot 的提示是基于 auto config 的吧

4

spring-configuration-metadata.json 抱歉。说错了。是json文件。这个可以自动生成的

9

这个可能是因为SpringBoot默认不会扫描非内部类的Config对象,如果需要被processor扫描到就需要有@NestedConfigurationProperty,并且是在每一个嵌套的对象想都要加上这个注解。 所以解决办法可能是:

  1. 在Dubbo有@Nested的地方加上@NestedConfigurationProperty, 目前会对dubbo-common有侵入性(要引入spring-boot 依赖)。

  2. 按照SpringBoot能正常处理的情况重新组织Configs , 比如都转成内部类...。

  3. 添加META-INF/additional-spring-configuration-metadata.json Adding Additional Metadata, 可能要手动维护。目前SpringBoot自己内部的additional-spring-configuration-metadata.json 比如flyway的,也是自己手动维护。

如果把3自动化可能要基于@Nested去做自己的AnnotationProcessor,或者自己参考springboot的processor完全实现hits功能生成spring-configuration-metadata.json

6

是的 我的想法就是改代码自动生成一波 然后拷贝出来回滚代码 再自己润色一些注释之类的