首页 > 其他分享 >springboot整合feign的接口抽离

springboot整合feign的接口抽离

时间:2022-10-13 15:25:40浏览次数:65  
标签:feign springboot 接口 api 抽离 provider 添加 服务端

前言

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

 

正文

  

 provider端:

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

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

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>        

  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的例子,因此次分享偏简单,就直接复用这个代码了,也是本人编写的)

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

标签:feign,springboot,接口,api,抽离,provider,添加,服务端
From: https://www.cnblogs.com/yhc-910/p/16787804.html

相关文章

  • springboot使用自定义注解实现加解密及脱敏
    原文链接: https://www.yisu.com/zixun/622633.html这篇文章主要介绍springboot中如何使用自定义注解实现加解密及脱敏方式,文中介绍的非常详细,具有一定的参考价值,感兴趣......
  • 慕课网--springboot学习项目推荐
    ​​Springboot微信小程序–微信登录功能实战​​​​SpringBoot构建电商基础秒杀项目​​​​SpringBoot+MyBatis搭建迷你小程序​​​​Springboot+ElasticSearch构......
  • springboot配置多数据源mysql,presto,hive等
    下面案例是配置多数据源,两个及以上,但是主数据源只能是一个,默认mybatis使用的是主数据源下面配置mysql为主数据源,通过注解@Primary标注yaml文件配置:spring:datasource......
  • Springboot 之 Filter 实现超大响应 JSON 数据压缩
    简介项目中,请求时发送超大json数据外;响应时也有可能返回超大json数据。上一篇实现了请求数据的gzip压缩。本篇通过filter实现对响应json数据的压缩。先了解一下......
  • 解决springBoot启动报错Failed to obtain JDBC Connection; nested exception is java
    FailedtoobtainJDBCConnection;nestedexceptionisjava.sql.SQLNonTransientConnectionException:CLIENT_PLUGIN_AUTHisrequired意思是获取JDBC连接失败,导致的......
  • SpringBoot 自定义注解 实现多数据源
    SpringBoot自定义注解实现多数据源前置学习需要了解注解、Aop、SpringBoot整合Mybatis的使用。数据准备基础项目代码:https://gitee.com/J_look/spring-boot-all-dem......
  • SpringBoot整合Kafka集群
    前言SpringBoot中集成Kafka,主要目的干啥呢,当然消息推送啦。不同系统之间,自身系统不同组件之间消息通信的一种方式,也可以是使用MQ。使用消息系统的目的主要就是为了解耦、......
  • 【云原生】Spring Cloud Alibaba 之 Feign 远程调用 实战
    文章目录​​一、什么是远程调用?​​​​⛅远程调用的原理​​​​二、RestTemplate与Feign的区别​​​​三、Feign远程调用实战开发​​​​⏳Feign替代RestTempla......
  • Nebula Graph介绍和SpringBoot环境连接和查询
    NebulaGraph介绍和SpringBoot环境连接和查询转载请注明来源https://www.cnblogs.com/milton/p/16784098.html说明当前NebulaGraph的最新版本是3.2.1,根据官方的文档......
  • SpringBoot的yml多环境配置3种方法
    方式一:多个yml文件 步骤一、创建多个配置文件application.yml#主配置文件application-dev.yml#开发环境的配置application-prod.yml#生产环境的配置applic......