SpringBoot集成OpenFeign

这篇具有很好参考价值的文章主要介绍了SpringBoot集成OpenFeign。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot集成OpenFeign简单使用


一. 简介

1. 什么是OpenFeign?

Feign是一个声明性web服务客户端。它使编写web服务客户端更容易。要使用Feign,请创建一个接口并对其进行注释。它具有可插入的注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud增加了对Spring MVC注释的支持,并支持使用Spring Web中默认使用的相同HttpMessageConverters。SpringCloud集成了Ribbon和Eureka,以及SpringCloundLoadBalancer,以在使用Feign时提供负载平衡的http客户端。

2. OpenFeign能干什么?

在Feign的实现下,我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可);即可完成对服务提供方的接口绑定,简化了使用SpringCloud Ribbon时,自动封装服务调用客户端的开发量。

3. OpenFeign和Feign的区别
OpenFeign Feign
OpenFeign是SpringCloud在Feign的基础上支持了SpringMVC的注解,如@RequestMapping等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。 Feign是SpringCloud组件中的一个轻量级RESTful的Http服务客户端,Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务。

二. Openfeign的使用

本次只演示OpenFeign远程调用接口的基本使用,不涉及负载均衡和服务熔断等其他问题。

1. 引入依赖

springboor和springcloud版本号均为 <version>2.2.1.RELEASE</version>

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
      <version>2.2.1.RELEASE</version>
</dependency>
2. 添加启动注解

在项目的启动类上添加Open Feign的启动注解@EnableFeignClients

@SpringBootApplication
@EnableFeignClients
public class StudentServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(StudentServerApplication.class, args);
    }

}

注:基础的使用我们只需要引入依赖和添加注解即可,不需要在yml中做其他配置,后期可根据需要引入其他依赖或添加其他注解即可(如Ribbon和Hystrix)。

三. Openfeign的调用

为了演示Openfeign,我在本地开启了两台工程,TeacherServerApplication作为服务提供帮者,StudentServerApplication作为服务调用者,模拟场景为老师发布通知,学生接收通知。

1. 服务提供者

TeacherServerApplication作为服务提供者,地址为localhost:8085,服务名为teacher-server

1.1 服务启动类
@SpringBootApplication
@EnableFeignClients
public class TeacherServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(TeacherServerApplication.class, args);
    }
}

1.2 创建提供者Service
@Service
public class TeacherService {
    public String getNotice(){
        return "疫情原因,明天不来学校,上午9:00 在家上网课";
    }
}
1.3 创建提供者Controler
@RestController
@RequestMapping(path = "/api/v1/teacher")
public class TeacherController {

    @Autowired
    private TeacherService teacherService;

    @GetMapping("/getNotice")
    public String getNotice(){
        String notice = teacherService.getNotice();
        System.out.println("获取通知"+notice);
        return teacherService.getNotice();
    }
}

2. 服务调用者

StudentServerApplication 作为服务调用者,地址为localhost:8080

2.1 服务启动类
@SpringBootApplication
@EnableFeignClients
public class StudentServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(StudentServerApplication.class, args);
    }
}
2.2 服务调用者Service

这里的name和url由服务提供者提供,方法名可以自定义,但 @GetMapping("/getNotice")必须一致。

@FeignClient(name = "teacher-server", url = "localhost:8085/api/v1/teacher")
@Component
public interface StudentService {
    @GetMapping("/getNotice")
    public String getNotice();
}
2.3 服务调用者Controller
/**
 * @author gf
 * @date 2022/11/3
 */
@RestController
@RequestMapping(path = "/api/v1/student")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @GetMapping("/notice")
    public String getTeacherNotice(){
        String notice = studentService.getNotice();
        return "学生收到通知了,通知内容为:"+notice;
    }
}

2.4 结果预览

启动两个工程,浏览器输入服务调用者的请求url。

springboot集成openfeign,SpringBoot,SpringCloud,spring boot,java,spring cloud
从上图可以看,我们已经获取到了服务提供者返回的数据。文章来源地址https://www.toymoban.com/news/detail-631595.html

到了这里,关于SpringBoot集成OpenFeign的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud OpenFeign

    Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。 Feign是Spring Cloud组件中一个轻量级RESTful的HTTP服务客户端,Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。 OpenFeign是Spring Cloud在Feign的基础上支持了SpringMVC的注解,如@Reques

    2024年02月08日
    浏览(39)
  • 声明式调用 —— SpringCloud OpenFeign

    Spring Cloud Feign 是一个 HTTP 请求调用的轻量级框架,可以以 Java 接口注解的方式调用 HTTP 请求,而不用通过封装 HTTP 请求报文的方式直接调用 Feign 通过处理注解,将请求模板化,当实际调用的时候传入参数,根据参数再应用到请求上,进而转化成真正的请求 本小节介绍如何通

    2024年02月08日
    浏览(50)
  • springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析

    Spring Cloud 是一系列框架的有序集合如服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等。 SpringCloud 将多个服务框架组合起来,通过Spring Boot进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者提供了一套简单易懂、易部署和易维护的分布式系统开

    2024年02月08日
    浏览(67)
  • SpringCloud源码解析-gateway&openFeign

    springcloud是基于springboot的,gateway各个组件的初始化入口在自动装配 1.2.1 GatewayClassPathWarningAutoConfiguration 主要作用是校验依赖 在GatewayAutoConfiguration之前被加载 校验是否导入了spring-boot-starter-web, gateway非web容器,不需要导入 spring-boot-starter-web 校验是否缺少spring-boot-starter-webflux依

    2024年02月08日
    浏览(50)
  • 【SpringCloud】OpenFeign服务接口调用快速入门

    官网地址:点击跳转 Feign是一个 声明性web服务客户端 。它使编写web服务客户端变得更容易。使用 Feign 创建一个接口并对其进行注释。它具有可插入的注释支持,包括Feign注释和 JAX-RS 注释。Feign 还支持可插拔编码器和解码器。Spring Cloud 添加了对 Spring MVC 注释的支持,以及对

    2024年04月25日
    浏览(38)
  • 【九】spring、springmvc、springboot、springcloud

            从事IT这么些年,经历了行业技术的更迭,各行各业都会有事务更新,IT行业技术更迭速度快的特点尤为突出,或许这也是从事这个行业的压力所在,但另一方面反应了这个行业人才济济。不记得什么时候听说了程序员改变世界这一口号,从而让我一直坚定的在这个行

    2024年02月05日
    浏览(45)
  • SpringCloud入门(微服务调用 OpenFeign)——从RestTemplate到OpenFeign & OpenFeign的相关配置 & 源码的分析和请求流程拆解

    在之前的博客中,我们介绍了RestTemplate的使用,博客文章如下连接。但是在使用RestTemplate的时候,需要把生产者的路径拼出来,非常繁琐,另外参数的传递的也比较繁琐,解决方案就是使用openFeign。 SpringCloud入门(RestTemplate + Ribbon)——微服务调用的方式 RestTemplate的使用 使

    2024年04月11日
    浏览(38)
  • SpringCloud openFeign 之 获取被调用服务名

    一. 概述 低版本 feign 只能获取到被调用方法的信息。 只有高版本 feign 才支持获取到被调用服务的信息。 二. 代码实现 三. 特别注意 在升级 feign-core 版本后,可能会出现 java.lang.NoSuchMethodException 异常。这就说明有版本问题,此时需要定位到报错位置,将对应方法所属 jar 包调

    2024年01月16日
    浏览(36)
  • 【SpringCloud】-OpenFeign实战及源码解析、与Ribbon结合

    OpenFeign(简称Feign)是一个声明式的Web服务客户端,用于简化服务之间的HTTP通信。与Nacos和Ribbon等组件协同,以支持在微服务体系结构中方便地进行服务间的通信; OpenFeign在默认情况下集成了Hystrix,提供了服务容错和服务降级的功能。 按照单一职责,也为了满足可复用、可

    2024年02月04日
    浏览(41)
  • SpringCloud - OpenFeign 参数传递和响应处理(全网最详细)

    目录 一、OpenFeign 参数传递和响应处理 1.1、feign 客户端参数传递 1.1.1、零散类型参数传递 1. 例如 querystring 方式传参 2. 例如路径方式传参 1.1.2、对象参数传递 1. 对象参数传递案例 1.1.3、数组参数传递 1. 数组传参案例 1.1.4、集合类型的参数传递(了解) 1.2、feign 客户端响应处

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包