springboot整合feign的接口抽离
阅读原文时间:2023年09月06日阅读:3

前言

  现在很多微服务框架使用feign来进行服务间的调用,需要在服务端和消费端两边分别对接口和请求返回实体进行编码,维护起来也比较麻烦。那有木有一种可能,只用服务端编写接口,客户端像本地方法一样调用,而且接口有变动,服务端可以不用改呢?

正文

provider端:

  1、先来看下框架,大概了解下,api层作为对外接口,包含接口、请求实体、返回实体;server层则为实际项目业务处理

  2、api层添加如下依赖:①validation-api为参数校验的,②springcloud2020.x之后的版本,openfeign已不在使用ribbon(已停更),替换为loadbalancer,需要手动添加

javax.validation validation-api
org.springframework.cloud spring-cloud-loadbalancer

  3、api层正常编写接口,和平常消费方编码一致

  4、server层添加controller,继承api层接口,添加@RestController

consumer端:
  1、添加provider的api层的依赖,注意@EnableFeignClients的扫描包需要包含provider端的api目录

  2、注入接口,直接调用即可,无须额外编写代码

  3、provider端如有代码更新,更新pom对应版本即可,对解析做出对应调整即可,调用代码不需调整。

完整项目链接:https://gitee.com/yhc910/seata-demo.git(注意:这里是集成了seata和nacos的例子,因此次分享偏简单,就直接复用这个代码了,也是本人编写的)

以下全凭自身经验搭建,如有不对之处,请留言指出,谢谢。