vlambda博客
学习文章列表

Dubbo使用Spring注解,兼容Feign


一、引言


现在Dubbo服务提供端和调用端采用的注解分别为@DubboService、@DubboReference,如果因架构调整,Dubbo调用要改为Feign调用,则改动量较大,需要替换每一处注解,代码耦合较深。因而想要采用Spring注解,来替换Dubbo的注解,依然能够实现dubbo方式调用,这样修改调用方式时,代码就无需变动了。


二、具体实现方案

1、Dubbo服务提供端注解处理

重写org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationPostProcessor



2、Dubbo服务消费端注解处理

 继承Feign.Builder,生成Dubbo代理类


 3、编写配置类,配置上述两个Bean

      加入@Bean注解即可

4、spring spi配置

      src/main/resources/META-INF/spring.factories里加入上步骤的配置类

三、总结

本文描述了一种Feign调用和Dubbo调用快速转换的方式,而且对于代码没有侵入性。以Spring注解替换了Dubbo注解,底层的调用依然可以是dubbo调用。核心在于对Dubbo注解的拦截和处理。