java feign的使用详细步骤及okhttp的使用

news2024/10/1 12:14:27

1、首先创建一个feign的模块并配置依赖,如图:

在这里插入图片描述

1、引入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>

2、编写feign接口(AdminFeign)

package com.jjw.admin.feign;

import com.jjw.admin.pojo.AdUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

// name:微服务名 path微服务中controller的类的@RequestMapping("/admin")
@FeignClient(name="leadnews-admin",path = "/admin")
public interface AdminFeign extends CoreFeign<AdUser> {
    //创建自媒体账户信息
    //@PostMapping
    //public Result save(@RequestBody AdUser adUser);

    /**
     * 根据apUserId获取
     * @param apUserId
     * @return
     */
    @GetMapping("/one/{apUserId}")
    public AdUser getByApUserId(@PathVariable(name="apUserId") Integer apUserId);
}

CoreFeign的内容(这部分可以不写,写是为了以后更方便的进行增删改查)

package com.jjw.admin.feign;

import com.jjw.result.pojo.PageInfo;
import com.jjw.result.pojo.PageRequestDto;
import com.jjw.result.pojo.Result;
import org.springframework.web.bind.annotation.*;

import java.io.Serializable;
import java.util.List;

public interface CoreFeign<T> {
    @DeleteMapping("/{id}")
    public Result deleteById(@PathVariable(name = "id") Serializable id) ;
    /**
     * 添加记录
     *
     * @param record
     * @return
     */
    @PostMapping
    public Result<T> save(@RequestBody T record) ;

    //更新数据
    @PutMapping
    public Result updateByPrimaryKey(@RequestBody T record) ;


    @GetMapping("/{id}")
    public Result<T> findById(@PathVariable(name = "id") Serializable id) ;

    @GetMapping
    public Result<List<T>> findAll() ;

    /**
     * 根据等号条进行查询调用
     * @param record
     * @return
     */
    @PostMapping("/listCondition")
    public Result<List<T>> findByRecord(@RequestBody T record) ;


    /**
     * 通用条件分页查询
     *
     * @param pageRequestDto
     * @return
     */
    @PostMapping(value = "/search")
    public Result<PageInfo<T>> findByPage(@RequestBody PageRequestDto<T> pageRequestDto) ;
}

在name为"leadnews-admin"的微服务的controller类中增添feign的实现接口

@GetMapping("/one/{apUserId}")
public AdUser getByApUserId(@PathVariable(name="apUserId") Integer apUserId){
      QueryWrapper<AdUser> queryWrapper = new QueryWrapper<AdUser>();
      queryWrapper.eq("id",apUserId);
      AdUser adUser = adUserService.getOne(queryWrapper);
      return adUser;
  }

在使用到feign的微服务中先引入feign的模块id,再调用feign接口

AdUser adUser2 = adminFeign.getByApUserId(adUser.getId());

以上已经完毕了,但是默认的feign调用httpUrlConnection每次都会创建一个链接对象。效率较低。所以使用okhttp来替换,它可以使用连接池。调用效率较高。需要引入feign-okhttp依赖

<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-okhttp</artifactId>
</dependency>

另外在需要用到feign的微服务中配置如下即可

feign:
  client:
    config:
      default: # default指定的是所有的 被调用方  都设置为该配置超时时间,可以设置为某一个微服务对应的服务名
        connectTimeout: 5000 # 链接超时时间
        readTimeout: 5000 # 读取的超时时间
  okhttp:
    enabled: true
  httpclient:
    enabled: false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/710809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kali换源

sudo vim /etc/apt/sources.list&#xff08;打开sources.list 文件&#xff09; 官方源 deb http://http.kali.org/kali kali-rolling main non-free contrib deb-src http://http.kali.org/kali kali-rolling main non-free contrib 中科大源 deb http://mirrors.ustc.edu.cn…

小主机折腾记15

海鲜市场买到个华硕的h61主板&#xff0c;支持笔记本内存又带独显插槽&#xff0c;40大洋包邮…… 到货后把老笔记本上拆下来的两根威刚2g 1066的内存条安上&#xff0c;上集提到的i5 2390t安上&#xff0c;之前买的gt440安上&#xff0c;最后安上了之前买的惠普侧吹风散热器&…

北大2019计算机学科夏令营上机考试

目录 A:数与字符串【找规律】 B:打印月历【暴力水题】 C:Hopscotch【BFS】 D:上楼梯【动态规划】 E:Life Line 【图】 F:跳蛙【DSP】 G:Falling Leaves【二叉搜索树】 H&#xff1a;昂贵的聘礼【图】 I:Connect【放弃】 A:数与字符串【找规律】 #include<iostream&…

idea项目提交到git 这一篇就够了

1. 下载git 到本地文件夹 2. 在windows端打开命令行 winR 然后cmd 首先查看git是否安装成功 从这里就可以看出git已经安装成功 然后使用 git config --list 查看git的基本配置 如果是第一次使用&#xff0c;需要创建用户名和邮箱 配置成功后再次使用 git config --list …

生成式AI, 新兴职业?

动动发财的小手&#xff0c;点个赞吧&#xff01; 生成式AI是一种基于人工智能技术的创新领域&#xff0c;它的目标是通过机器学习和自然语言处理等技术来模拟人类的创造力和智慧&#xff0c;从而生成全新的内容&#xff0c;如文本、图像、音频等。生成式AI在近年来取得了巨大的…

php对接小鹅通API开发高级实战案例解析:获取指定资源学习记录信息(单人单学习记录、单人多学习记录累计、返回数据格式确认)

获取指定资源学习记录信息 前言一、获取指定资源学习记录信息请求方式及url二、获取指定资源学习记录信息请求参数请求参数请求格式 三、单人单学习记录API封装函数四、单人多学习记录API封装函数总结 前言 开发使用小鹅通API的时候&#xff0c;以下是一些需要注意的事项&…

实战:RocketMQ高级功能代码实现

1&#xff0c;事务消息代码实现 之前我们已经在讨论订单业务消息丢失问题中引出了事务消息&#xff0c;本内容我们就实际用代码来实现一下事务消息吧。 首先我们用原生代码来实现一下事务消息&#xff0c;下面是事务消息生产者TransactionProducer类的代码&#xff0c;具体代码…

Reveser(小学期)

开门见山 看一下多少位的 Flag就在上面 给电灯通电 打开看一下主函数 看到这个判断同时&#xff0c;进去看到最后一个函数 看到最后一个判断&#xff0c;数组判断的个数是56个 在IDA里面v5这个参数确实是56&#xff0c;但是v2不是 我们放进去看一下发现 有了前面的一些&a…

20种常用的软件测试方法,建议先收藏再观看

软件测试在完整的项目当中算是最后一个环节&#xff0c;也是非常重要的一个环节。通过软件测试&#xff0c;我们才能得知一个程序是否符合标准。 小编整理出20种常见的软件测试方法&#xff0c;建议伙伴们先收藏再看。不敢说史上最全&#xff0c;但我办公室里十年软件测试经验…

创建Java文件时路径字符串的名字分割符

java.io.File的构造函数&#xff1a; 如果用File(String pathname)这个形式的构造函数&#xff0c;路径字符串pathname涉及名字分割符。 下面代码的几段各创建了一个文件&#xff0c;但有的写法就不正确&#xff0c;见代码中的注释&#xff1a; package com.thb;import java…

零信任:接入Authing进行身份认证

在之前的的文章中我们提到我们自己开发了一个Apisix的认证插件来实现认证&#xff0c;但是实际过程当中&#xff0c;我们同样也希望支持使用Keycloak&#xff0c;Authing&#xff0c;okta这类统一身份认证。本文主要是说明我们如何使用Authing这个身份认证供应商来实现登录认证…

Docker安装达梦M8数据库,Jdbc客户端乱码解决方案

Docker安装达梦M8 下载镜像tar包&#xff1a;https://eco.dameng.com/download/ #导入镜像 docker load -i dm8_20220822_rev166351_x86_rh6_64_ctm.tar # 启动容器 docker run -d -p 5236:5236 --restartalways --name dm8 --privilegedtrue -e PAGE_SIZE16 -e LD_LIBRARY_…

管理者必修的7门课

在现代商业世界中&#xff0c;管理者需要具备各种技能和知识&#xff0c;以便有效地领导他们的团队&#xff0c;并使他们的组织成功地达到其目标。虽然管理是一门复杂的学科&#xff0c;但有一些核心课程对于所有管理者来说都是必学的。 在本文中&#xff0c;我们将探讨管理者…

Multi-sensor KIT 多传感器开发板

1.前言 经过一段时间的思考后&#xff0c;我决定设计一款能够兼容多个传感器的开发板。这个开发板由核心底板和扩展板组成&#xff0c;其中核心底板预留了多路的I2C、SPI、UART、ADC等接口&#xff0c;而扩展板则兼容了QMI8658A-EVB和CH101/201-EVB的支持。这个设计可以让我更…

redis-主从安装

解决问题 1.数据安全问题 2.高并发读问题 1.主节点和 redis-单节点安装一致 2.从节点 daemonize yes port 6379 bind 0.0.0.0 requirepass 123456 save 3600 1 300 100 60 10000dir /usr/local/redis dbfilename dump.rdb logfile redis.log pidfile redis.pidreplicaof 172.2…

【SCADA】测试KingIOServer连接ModbusTCP设备

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 今天测试KingIOServer连接ModbusTCP设备&#xff0c;下面记录测试过程。 一、ModbusTCP设备 利用ModbusSlave模拟Modbus从站设备。 1、打开ModbusSlave软件&#xff0c;点击菜单栏【Setup】—>【SlaveDefinition……

ESP32设备驱动-SCD40二氧化碳湿度和温度传感器驱动

SCD40二氧化碳湿度和温度传感器驱动 文章目录 SCD40二氧化碳湿度和温度传感器驱动1、SCD40介绍2、硬件准备3、软件准备4、驱动实现1、SCD40介绍 SCD4x 是 Sensirion 的下一代微型 CO2 传感器。 该传感器基于光声 NDIR 传感原理和 Sensirion 的专利 PASens 和 CMOSens 技术,以…

初学spring5(七)AOP就这么简单

学习回顾&#xff1a;初学spring5&#xff08;六&#xff09;静态/动态代理模式 一、什么是AOP&#xff1f; AOP&#xff08;Aspect Oriented Programming&#xff09;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术…

什么是BFC?

BFC是什么东西? BFC 全称&#xff1a;Block Formatting Context&#xff0c; 名为块级格式化上下文。 W3C官方解释为&#xff1a;BFC是 Web 页面的可视 CSS 渲染的一部分&#xff0c;是块级盒子的布局过程发生的区域&#xff0c;也是浮动元素与其他元素交互的区域。 通俗一…

如何自己创建一个工具项目并上传到npm上使用

第一步&#xff1a;npm官网注册一个自己的账号 第二步&#xff1a;在cmd窗口创建一个项目&#xff08;这里我以vue3为例子&#xff09; npm create vite 项目名 选择框架&#xff1a; 选择语言&#xff1a; 在项目中使用命令安装项目依赖&#xff1a; npm i 运行项目&#…