6、微服务组件openfeign

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

1、在消费端的项目中引入openfeign依赖

首先需要确保引入了springcloud,因为openfeign依赖与springcloud

在消费端的pom.xml中引入openfeign,父项目中已经引入了springcloud了

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springalibabanew</artifactId>
        <groupId>com.chinasofti</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>order-openfeign</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--nacos-服务注册发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--添加openfeign依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>
</project>

父项目的pom.xml已经引入了springcloud

6、微服务组件openfeign

 2、添加openfeign接口和方法

openfeign是解决服务之间调用的,我们之前在订单中调用库存的服务了,我们尽量让feign的名字和库存的服务的名字保持一致,这样方便使用,同样的方法也用controller中的方法,controller中怎么定义的这边就怎么调用,比如原先的StockController

package com.chinasofti.stock.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author mxx
 * @Date 2023/6/12 16:48
 * @Version 1.0
 */
@RestController
@RequestMapping("/stock")
public class StockController {
    @Value("${server.port}")
    String port;
    @RequestMapping("/reduct")
    public String reduct(){
        System.out.println("扣减库存");
        return "扣减库存:"+port;
    }
}

对应的openfeign接口如下:

package com.chinasofti.order.feign;

/**
 * @Author mxx
 * @Date 2023/6/15 11:00
 * @Version 1.0
 */

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * name指定调用rest接口所对应的服务名
 * path指定调用rest接口所在的StockController指定的RequestMapping
 */
@FeignClient(name="stock-service",path="/stock")
public interface StockFeignService {
    //声明需要调用的rest接口对应的方法,将原先的StockController中的方法复制过来
    @RequestMapping("/reduct")
    String reduct();
}

3、客户端调用代码修改

原先使用了restTemplate,现在将这个删除掉

6、微服务组件openfeign

6、微服务组件openfeign 将创建的feign注入到OrderController中,然后调用里面的方法,如下:

package com.chinasofti.order.controller;

import com.chinasofti.order.feign.StockFeignService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @Author mxx
 * @Date 2023/6/12 16:44
 * @Version 1.0
 */
@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    StockFeignService stockFeignService;
    @RequestMapping("/add")
    public String add(){
        System.out.println("下单成功");
        String msg = stockFeignService.reduct();
        return "Hello Feign!"+msg;
    }
}

但是这样stockFeignService下边有个波浪线,如下

6、微服务组件openfeign

 我们需要在启动类中加入@EnableFeignClients注解,如下:
 

package com.chinasofti.order;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @Author mxx
 * @Date 2023/6/12 16:55
 * @Version 1.0
 */
@SpringBootApplication
@EnableFeignClients
public class OrderApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderApplication.class,args);
    }
}

这样那个波浪线就消失了。修改端口为8040,然后启动订单和stock服务

6、微服务组件openfeign

启动成功后通过浏览器访问,如下:

 

6、微服务组件openfeign

 openfeign就调用成功了。文章来源地址https://www.toymoban.com/news/detail-489220.html

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

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

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

相关文章

  • SpringCloud微服务之间如何进行用户信息传递(涉及:Gateway、OpenFeign组件)

    在业务微服务中通过工具类获取当前用户信息 网关微服务(Gateway)往业务微服务传递用户信息 业务微服务之间通过OpenFeign传递用户信息 只要把上面两处打通,然后业务微服务在通过拦截器获取到用户信息,之后再将用户信息存在ThreadLocal中,这样我们就可以实现在业务微服

    2024年02月13日
    浏览(55)
  • SpringBoot引入OpenFeign,不使用注册中心

    【前言】 最近接到一个需求,需要对接第三方平台的api,在设计方案通过之后,打算将对接服务拆分出来,因为现在的项目没有使用到注册中心,打算单独引入OpenFeign组件简化服务通信方式,也为了更好的支持项目后续向微服务的转变! 很多人以为OpenFeign必须依赖于注册中

    2024年02月06日
    浏览(36)
  • 【openfeign】OpenFeign的扩展、日志、超时时间、拦截器、客户端组件、压缩

    有时候我们遇到Bug,比如接口调用失败、参数没收到等问题,或者想看看调用性能,就需要配置Feign的日志了,以此让Feign把请求信息输出来。 定义一个配置类,指定日志级别: 通过源码可以看到日志等级有4种,分别是: NONE:不记录任何日志(默认值),性能最佳,适用于

    2024年02月12日
    浏览(50)
  • 熟练使用Nacos、GateWay、OpenFeign、Sentinel常用组件

    Nacos 面试题 : 请简述Nacos是什么,它主要解决了什么问题? Nacos提供了哪些核心功能? Nacos是如何支持服务发现的? 如何使用Nacos作为配置中心? Nacos的集群部署是如何实现的? 答案 : Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它主要解

    2024年04月13日
    浏览(40)
  • 扒一扒Nacos、OpenFeign、Ribbon、loadbalancer组件协调工作的原理

    大家好,我是三友~~ 前几天有个大兄弟问了我一个问题,注册中心要集成SpringCloud,想实现SpringCloud的负载均衡,需要实现哪些接口和规范。 既然这个兄弟问到我了,而我又刚好知道,这不得好好写一篇文章来回答这个问题,虽然在后面的聊天中我已经回答过了。 接下来本文

    2023年04月11日
    浏览(43)
  • 微服务之OpenFeign服务接口调用

    OpenFeign客户端是一个web声明式http远程调用工具,直接可以根据服务名称去注册中心拿到指定的服务IP集合,提供了接口和注解方式进行调用,内嵌集成了Ribbon本地负载均衡器。 Feign是一个 声明性web服务客户端 。它使编写web服务客户端变得更容易。 使用Feign创建一个接口并对

    2024年04月16日
    浏览(35)
  • 微服务-OpenFeign基本使用

    OpenFeign是一种声明式、模板化的HTTP客户端,它使得调用RESTful网络服务变得简单。在Spring Cloud中使用OpenFeign,可以做到像调用本地方法一样使用HTTP请求访问远程服务,开发者无需关注远程HTTP请求的细节。 OpenFeign的Spring应用架构一般分为三部分,分别是注册中心、服务提供者

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

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

    2024年04月11日
    浏览(38)
  • day07-OpenFeign-服务调用

    https://github.com/spring-cloud/spring-cloud-openfeign OpenFeign是一个声明式WebService客户端,使用OpenFeign让编写Web Service客户端更加简单 它的使用方法是定义一个服务端口然后在上面添加注解 OpenFeign也支持可插拔式的编码器和解码器 SpringCloud对OpenFeign进行了封装使其支持SpringMVC标准注解和

    2023年04月11日
    浏览(37)
  • 微服务远程调用openFeign整合

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 微服务探索之旅 ✨特色专栏: MySQL学习 🥭本文内容:微服务远程调用openFeign整合 🖥️个人小站 :个人博客,欢迎大家访问 📚个人知识库:

    2024年02月09日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包