spring和dubbo兼容性问题,一个奇怪的Bug|使用dubbo时,配置包扫描context:component-scan ApplicationContext创建对象直接卡住问题的解决办法

196 阅读1分钟

今天在学习dubbo的时候遇到一个问题
就是我的consumer一直在加载,却无法运行我配置的provider的方法
到Dubbo Admin里面去看发现 根本就没有我的provider
然后通过对代码中间加入输出语句,发现我的ApplicationContext对象根本没有创建成功(如果是采用tomcat的去使用Listenner去加载的话就更难找到了),辛亏我是直接自己直接创建applicationContext对象的

然后我就不断的尝试看是xml语句里面那句话导致的错误
最后发现 只要有<context:component-scan base-package="com.kehao.gmall.service.impl" ></context:component-scan>我就无法创建ApplicationContext对象,这就很离奇了,我把其他所有配置都注释掉,保证不是其他配置文件联动影响,依然问题存在

然后我就怀疑是spring的版本问题,导致一旦使用dubbo,context:component-scan就会有Bug,原先我在导包的时候没有导入spring,因为dubbo的包中包含spring ,所以我就没有手动的导入spring ,后来根据百度发现dubbo默认使用的是4版本的spring 所以我又导入了5版本的spring,问题成功解决