首页 > 其他分享 >OpenFeign使用方法

OpenFeign使用方法

时间:2025-01-17 18:32:54浏览次数:3  
标签:feign 调用 String OpenFeign 模块 使用 import 方法 客户端

本文为自己做的笔记,如果要看懂可能要一点基础

一、添加依赖

在pom.xml文件添加以下代码

<!-- openfeign-->
<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-openfeign</artifactId>
      <version>3.1.9</version>
</dependency>

在application.yml配置一下连接池

feign:
  httpclient:
    enabled: true

二、写feign客户端

feign客户端类似service层,提供了一系列的接口可以调用外部的服务

package com.ruoyi.business.openFeignApi.service;

import com.ruoyi.common.core.domain.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@FeignClient(name = "sys-user", url = "localhost:8096/system/sysUser")
@Component
public interface SysUserService {

    @PostMapping("/insertsysUserList")
    R insertsysUserList(@RequestBody List<Map<String,Object>> list,@RequestHeader("Authorization") String token);

    @GetMapping("/selectsysUserList")
    List<Map<String,Object>> selectsysUserList(@RequestParam("userId")String userId,@RequestHeader("Authorization")String token);
}

如图示为各部分解析:

重要的地方讲一下:
1. @FeginClient定义feign客户端,在项目中你可以有几十个这样的客户端,但名字不能重复;因为我要调用外部模块的服务,就要加localhost:8096等等的外部路径
2. 路径必须和你要调用的外部服务路径完全一致,方法名最好也一致
3. 如果你有一个Get请求,参数是String id、String name这样有多个参数的,最好给每个参数都加上@RequestParam注解,否则feign容易误转为post请求导致报错
4. 比如说我有一个teacher模块,要调用student模块的获取学生信息,会返回一个studentVo类,但这样是错的,因为studentVo类只在student模块中有,teacher模块是没有的,所以正确的做法是返回一个Map<String,Object>

5. 写完feign客户端后,你可以在调用者模块的controller写一个简单的方法来看看是否正确调用外部服务并返回
6. 调用外部服务时要把token也作为参数传给被调用者,不然外部服务没有权限执行;
7. 写完这个feign客户端(我这里命名成service)后把他注入到调用者的controller或者impl即可使用

标签:feign,调用,String,OpenFeign,模块,使用,import,方法,客户端
From: https://blog.csdn.net/m0_62519278/article/details/145211756

相关文章

  • Vue3中使用组合式API通过路由传值详解
    在Vue3中,使用组合式API来传递路由参数是一种常见的需求。VueRouter是Vue.js的官方路由管理工具,可以在不同的场景下通过多种方式传递和接收路由参数。下面将详细讲解几种常见的路由传值方式,并提供相应的代码示例。1.通过路由参数传值(动态路由参数)路由参数是一种最常......
  • 使用 pdf.js 通过文件流方式加载pdf文件
    关于Pdf.js的基础知识,请参考我的博客 使用pdf.js在网页中加载pdf文件使用pdf.js跨域问题的处理方法    上面两篇博客中介绍的内容都是基于直接加载远程服务器中静态PDF文件(即URL地址)来渲染PDF的,实际业务场景中,如与第三方系统对接过程中,第三方系统不直接公开......
  • go项目zero中自定义sdk的引用与使用规范
    在Go项目中,`gomodtidy`命令会自动删除没有直接引用的依赖。如果你的项目中某个SDK被引用但是没有在业务代码中直接使用,`gomodtidy`可能会将其清理掉,因为它被认为是"未使用"的依赖。如果你希望保留这些依赖(例如某些SDK),可以采取以下几种方法:###1.显式调用SDK中......
  • [RHCE学习笔记]RedHat 使用sshd服务远程连接服务器
    目录前言理论加密技术原理连接远程服务器的过程                                 版本协商阶段 密钥和算法协商阶段 认证阶段实操实验一修改ssh服务端口号实验二拒绝root用户登录实验三允......
  • vue中使用axios获取不到响应头Content-Disposition的解决办法
    项目中,后端返回的文件流,fileName是机构名称+服务器时间。前端需要拿到响应头里的Content-Disposition字段的值,从中获取文件名在控制台Headers中可以看到相关的字段和文件名,但是在axios里面却获取不到 如果想要让客户端访问到相关信息,服务器不仅要在heade里添加,还要将它们在......
  • LossVal:一种集成于损失函数的高效数据价值评估方法
    在机器学习领域,训练数据的价值并非均等:部分训练数据点对模型训练的影响显著高于其他数据点。评估单个数据点的影响程度通常需要反复重训练模型,计算效率低下。LossVal提出了一种创新方法,通过将数据价值评估过程直接集成到神经网络的损失函数中,实现了高效的数据价值评估。现代机器......
  • [Machine Learning] 使用经典聚类模型k均值(k-means)实现blobs聚类
    一、内容实现概述本文主要讲述使用scikit-learn库内置的kNN模型,实现鸢尾花分类。具体实现过程如下:1.导入所需库:预先导入numpy、matplotlib以及scikit-learn库2.导入数据:调用sklearn库内置的加载数据的方法make_blobs(),导入斑点数据3.数据预处理:对blobs数据进行预处理,获得......
  • SpringCloudAlibaba:从0搭建一套快速开发框架-04 OpenFeign的使用
    序言:上篇安装了Nacos并注册了系统服务,本篇主要介绍OpenFeign的集成使用。OpenFeign简介OpenFeign是一个声明式的HTTP客户端,它通过注解的方式简化了调用RESTfulAPI的过程。它是SpringCloud的一部分,用于在微服务架构中简化服务间的通信。与传统的使用RestTemplate......
  • [Machine Learning] 使用经典分类模型k最近邻(kNN)实现鸢尾花分类
    一、内容实现概述本文主要讲述使用scikit-learn库内置的kNN模型,实现鸢尾花分类。具体实现过程如下:1.导入所需库:预先导入scikit-learn库2.导入数据:调用sklearn库内置的加载数据的方法load_iris(),导入鸢尾花数据3.数据预处理:对鸢尾花数据进行预处理,获得特征数据与目标数据4......
  • Springboot(五十八)SpringBoot3使用Redisson实现接口的限流功能
    这部分我记录一下我使用redission实现接口限流的全过程。关于自定义注解,请移步《SpringBoot(二十六)SpringBoot自定义注解》一:redission自定义限流注解主要流程对接口实现限流,主要使用了Redisson提供的限流API方法;使用很简单:第一步:声明一个限流器; RRateLimiter rRateLim......