关于springBoot整合dubbo时,扫描配置 service的接口和service的实现类不在同一个包下的问题。

本文通过实际案例介绍了如何在Dubbo框架中合理地组织服务接口,以减少代码重复并提高项目的可维护性。作者分享了从最初分别在生产者和消费者端定义接口,到将这些接口集中到一个独立模块的经验过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于dubbo,有生产者和消费者两端。对于生产者端的配置,按照github上springBoot的官方案例,是把要暴露service接口和service实现都放在同一个包下。如图:

同时扫描配置也是只扫描这个包就行了。

消费者端是这样,也是要创建service的接口,同时调用service接口的service实例也是放在同一个包下。

同时消费者端的扫描配置是这样:

但是我觉得这样太麻烦了,生产者端和消费者端要写两份接口,如果你不止这一个项目,还有另一个项目也要RPC调用,另一个项目又要写,这样会越写越多,加上之前搭这种springBoot项目应该把公共的接口抽离出来,不用写多份,同时也便于其他项目进行调用。就像这样:

把接口单独放进一个maven项目里。

一开始我生产者端结构不变,只把消费者端接口抽取出来的时候,发现,无论怎么配置扫描的包,配置成接口所在的包,还是调用接口的类所在的包都无法,都无法注入这个生产者,报的是空指针异常,说明这个消费者压根就没找到这个生产者。网上找了挺多资料,折腾了挺久,都没有什么解决方案,后面打开dubbo -admin 看看,发现:

发现竟然没有提供者,一瞬间有点懂了,应该dubbo不是根据名字去找生产者的,似乎是根据前面的包名+接口名字去找对应的生产者(具体实现原理暂时没有这么高的水平去研究)。原来如此,那我直接将生成者和消费者一起提取出来不就ok? 这也是最终目的,原来可以一步到达,我自己非要分开走,于是乎提取出来,程序就通了。

不过也明白了扫描配置那里

生产者端应该是接口实现类所在的包,消费者端应该是调用接口的类所在的包。(不是接口所在的包)。

记录下!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值