SpringCloud之Feign远程接口映射的实现

 更新时间:2020年09月08日 08:31:58   作者:奶茶37.2℃  
这篇文章主要介绍了SpringCloud之Feign远程接口映射的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一.简介

SpringCloud是基于Restful的远程调用框架,引入Ribbon负载均衡组件后还需要客户端使用RestTemplate调用远程接口,操作起来还显得繁琐。SpringCloud提供了远程接口映射,将远程Restful服务映射为远程接口,消费端注入远程接口即可实现方法调用。

二.流程

1.新建远程接口映射模块service-api,并引入Feign接口映射依赖

 <dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
  </dependency>
</dependencies>

2.编写接口映射接口

package com.vincent.service;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient("SERVICE-USER")
@RequestMapping("/service-user")
public interface IUserService {
  @GetMapping("/detail")
  Object detail(@RequestParam("id") Integer id);
}

3.配置消费端application.yml

server:
 port: 9001

eureka:
 client:
  service-url:
   defaultZone: http://localhost:7001/service-eureka/eureka
  register-with-eureka: false

4.消费端添加映射模块依赖

 <dependency>
  <groupId>com.vincent</groupId>
  <artifactId>service-api</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

5.客户端注入需要使用的服务接口映射

package com.vincent.controller;

import com.vincent.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class UserController {

  @Autowired
  private IUserService userService;

  @GetMapping("/detail")
  public Object detail(Integer id){
    return this.userService.detail(id);
  }
}

5.编写消费端启动类

package com.vincent;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;


@SpringBootApplication
@EnableFeignClients({"com.vincent.service"})
@EnableEurekaClient
public class ConsumerApp {
  public static void main(String[] args) {
    SpringApplication.run(ConsumerApp.class,args);
  }
}

@EnableFeignClients 定义Feign接口映射扫描包,IOC容器会自动创建接口实现类

6.访问 http://localhost:9001/detail?id=1

三.总结

Feign接口映射服务端Restful接口会自动依赖Ribbon组件,实现客户端负载均衡。使用接口调用消费端远程接口就像调用本地方法一样。

到此这篇关于SpringCloud之Feign远程接口映射的实现的文章就介绍到这了,更多相关SpringCloud Feign远程接口映射内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot整合quartz项目使用案例

    springboot整合quartz项目使用案例

    quartz是一个定时调度的框架,就目前市场上来说,其实有比quartz更优秀的一些定时调度框架,不但性能比quartz好,学习成本更低,而且还提供可视化操作定时任务,这篇文章主要介绍了springboot整合quartz项目使用(含完整代码),需要的朋友可以参考下
    2023-05-05
  • idea 解决用骨架创建项目过慢的操作方式

    idea 解决用骨架创建项目过慢的操作方式

    这篇文章主要介绍了idea 解决用骨架创建项目过慢的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • springboot自动配置没有生效的问题定位(条件断点)

    springboot自动配置没有生效的问题定位(条件断点)

    这篇文章主要介绍了springboot自动配置未生效问题定位,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们来学习一下吧
    2019-06-06
  • SpringBoot如何监听redis Key变化事件案例详解

    SpringBoot如何监听redis Key变化事件案例详解

    项目中需要监听redis的一些事件比如键删除,修改,过期等,下面这篇文章主要给大家介绍了关于SpringBoot如何监听redis Key变化事件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Java使用jxl包写Excel文件适合列宽实现

    Java使用jxl包写Excel文件适合列宽实现

    用jxl.jar包,读写过Excel文件。也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽。
    2013-11-11
  • Java Synchronized的偏向锁详细分析

    Java Synchronized的偏向锁详细分析

    synchronized作为Java程序员最常用同步工具,很多人却对它的用法和实现原理一知半解,以至于还有不少人认为synchronized是重量级锁,性能较差,尽量少用。但不可否认的是synchronized依然是并发首选工具,本文就来详细讲讲
    2023-04-04
  • Java 从网上下载文件的几种方式实例代码详解

    Java 从网上下载文件的几种方式实例代码详解

    本文通过实例代码给大家介绍了java从网上下载文件的几种方式,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-08-08
  • springcloud之Feign超时问题的解决

    springcloud之Feign超时问题的解决

    这篇文章主要介绍了springcloud之Feign超时问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • SpringBoot+Redis布隆过滤器防恶意流量击穿缓存

    SpringBoot+Redis布隆过滤器防恶意流量击穿缓存

    本文主要介绍了SpringBoot+Redis布隆过滤器防恶意流量击穿缓存,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 详解如何Java中实现Excel的注释和批注

    详解如何Java中实现Excel的注释和批注

    注释及批注是 Excel 中比较常用的功能,这篇文章主要为大家详细介绍了如何在Java中实现Excel的注释和批注,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12

最新评论