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注解的拦截和处理。