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

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*/@PostMappingpublic Result<T> save(@RequestBody T record) ;//更新数据@PutMappingpublic Result updateByPrimaryKey(@RequestBody T record) ;@GetMapping("/{id}")public Result<T> findById(@PathVariable(name = "id") Serializable id) ;@GetMappingpublic 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: truehttpclient:enabled: false

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于java的汽车服务管理系统(Car Service Management System)

设计一款基于java的管理和跟踪对车辆所做服务的系统。我们的系统允许服务技术人员跟踪客户、他们的车辆以及对这些车辆所做的服务。 需要项目的朋友私信我&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; Car Service Management System 基本的使用…

Python 字符串的使用

字符串使用 1. 字符串的定义方式 双引号或者单引号括起来的数据&#xff0c;就是字符串。使用三引号括起来也是字符串&#xff0c;并支持换行。 例&#xff1a; # 使用反斜线 对单引号进行转义 name1 i\ Tom name2 "Rose" name3 Tom name4 ""&qu…

K8s是什么?

K8s是开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用。&#xff08;docker只能是单主机上的容器化的应用&#xff09; 职责&#xff1a;管理容器应用 目标&#xff1a;让部署容器化的应用简单高效 Rancher 可以通过界面管理 K8s 平台 一、让我们先来了解一个什…

Jenkins+Docker 实现一键自动化部署项目

1、环境配置 环境&#xff1a;centos7git(gitee) 简述实现步骤&#xff1a;在docker安装jenkins&#xff0c;配置jenkins基本信息&#xff0c;利用Dockerfile和shell脚本实现项目自动拉取打包并运行。 2、安装docker docker 安装社区版本CE 确保 yum 包更新到最新。 yum …

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

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

联想小新电脑无法启动怎么办?

1&#xff0c;电脑启动不了 2&#xff0c;强制断电3次开机后&#xff0c;Win11进入高级启动模式 &#xff08;注意每次强制关机要按住15秒左右&#xff09; 3&#xff0c;选择疑难解答 4&#xff0c;选择高级选项 5&#xff0c;卸载更新 6&#xff0c;卸载最新的质量更新 7&am…

代理模式(Proxy)

定义 代理是一种结构型设计模式&#xff0c;让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问&#xff0c;并允许在将请求提交给对象前后进行一些处理。 前言 1. 问题 举个例子&#xff1a;有这样一个消耗大量系统资源的巨型对象&#xff0c; 你只是偶尔需…

Stable Diffusion 使用outpainting扩展图像

通常SD可以应用绘制的图像是固定分辨率的&#xff0c;但是如果想要超出这个分辨率的话那就要使用一些方法&#xff0c;并且如果还想保持这些图片的连贯性&#xff0c;例如背景就要使用到outpainting。 文章目录 操作流程准备图像 操作流程 准备图像 首先将需要扩展边缘的图像…

Xcode 15 beta 2 - Apple Vision Pro安装下载

1. 更新OS系统 已更新的忽略这步 2. 下载Xcode 15 beta 2 Xcode 15 Xcode 15 让你能够开发、测试和分发适用于所有 Apple 平台的 App。借助增强的代码补齐功能、交互式预览和实时动画&#xff0c;更快地推进 App 的编码和设计。利用 Git 暂存功能直接改进下次要提交的文件&…

二叉树各种函数的实现

如果你觉得迷茫&#xff0c;那就尽可能选择比较困难的路。 目录 前言&#xff1a; &#x1f340;一.通过前序遍历创建二叉树 &#x1f341;二.二叉树的四种遍历 &#x1f342;1.二叉树的前序遍历 &#x1f33c;2.二叉树的中序遍历 &#x1f34c;3.二叉树的后序遍历 …

如何在 ZBrush 和 UE5 中创建精灵吟游诗人(P2)

小伙伴们大家好&#xff0c;下篇咱们精彩继续&#xff0c;主要是讲解角色建模完成后的重新拓扑、UV、灯光设置和渲染。 纹理的重新拓扑和UV 一切都在 Maya 中完成&#xff0c;重新拓扑是一个漫长的过程&#xff0c;因为角色有很多元素&#xff0c;值得庆幸的是&#xff0c;在…

从0到1精通自动化测试,pytest自动化测试框架,fixture之autouse=True(十二)

一、前言 平常写自动化用例会写一些前置的fixture操作&#xff0c;用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候&#xff0c;每次都传这个参数&#xff0c;会比较麻烦 fixture里面有个参数autouse&#xff0c;默认是Fasle没开启的&#xff0c;可以设置为Tr…