[apache/dubbo]springboot+dubbo项目,dubbo从2.7.19升级至3.1.7后启动报错,找不到ApplicationConfig类

2023-12-20 846 views
0

dubbo从2.7.19升级到3.1.7,报启动失败, component required a bean of type 'org.apache.dubbo.config.ApplicationConfig' that could not be found; 恢复到2.7.19版本又可以正常启动;求教各位大神如何解决

回答

7

项目中哪里注入了ApplicationConfig吗 version:2.7.19 ApplicationConfig会默认给Spring管理

1

引用到的地方挺多的,都是类似这样引用的; image

8

spring配置文件中的dubbo application这个标签还在么

1

在的,是不是在dubbo3.x版本不能像2.7.19里面那么使用才导致的问题? 我是个程序员小白,不知道应该怎么去用他,项目中好多地方用到了dubbo的原生类,现在升了版本都不能用 ,还请大神指导一下

6

这个配置在吗,这个标签就是自己定义了一个Bean了

3

注入 ApplicationConfig 的行为能不能删除,这个是 Dubbo 内置的配置对象,如果不是通过 Spring 注入的,不应该通过 Resource 去获取

6
getApplicationConfig

getBean(ApplicationModel.class).getCurrentConfig();

getProtocolConfig

getBean(ConfigManager.class).getProtocol(DUBBO_PROTOCOL);

1

1.代码变更如图 image image 除了获取ConfigManager,也可以注入DubboConfigurationProperties获取dubbo的config 2.兼容方式,可以自己写个类实现BeanDefinitionRegistryPostProcessor,ApplicationContextAware获取DubboConfigurationProperties后再获取ApplicationConfig注入到容器中