spring-cloud feign的多参数传递方案
一、GET请求多参数URL
1、方法一(推荐)
@FeignClient(“microservice-provider-user”)
public interface UserFeignClient {
@GetMapping("/get")
public User get0(@SpringQueryMap User user);
}
2、方法二(推荐)
@FeignClient(name = “microservice-provider-user”)
public interface UserFeignClient {
@RequestMapping(value = “/get”, method = RequestMethod.GET)
public User get1(@RequestParam(“id”) Long id, @RequestParam(“username”) String username);
}
这是最为直观的方式,URL有几个参数,Feign接口中的方法就有几个参数。使用@RequestParam注解指定请求的参数是什么
java开发工具下载地址及安装教程大全,点这里。
更多深度技术文章,在这里。
3、方法三(不推荐)
多参数的URL也可使用Map来构建。当目标URL参数非常多的时候,可使用这种方式简化Feign接口的编写。
@FeignClient(name = “microservice-provider-user”)
public interface UserFeignClient {
@RequestMapping(value = “/get”, method = RequestMethod.GET)
public User get2(@RequestParam Map<String, Object> map);
}
在调用时,可使用类似以下的代码。
public User get(String username, String password) {
HashMap<String, Object> map = Maps.newHashMap();
map.put(“id”, “1”);
map.put(“username”, “张三”); return this.userFeignClient.get2(map);
}
注意:这种方式不建议使用。主要是因为可读性不好,而且如果参数为空的时候会有一些问题,例如map.put(“username”, null); 会导致microservice-provider-user 服务接收到的username是"" ,而不是null。
二、POST请求多参数URL
下面来讨论如何使用Feign构造包含多个参数的POST请求。假设服务提供者的Controller是这样编写的:
@RestController public class UserController {
@PostMapping("/post")
public User post(@RequestBody User user) {
…
}
}
我们要如何使用Feign去请求呢?答案非常简单,示例:
@FeignClient(name = “microservice-provider-user”)
public interface UserFeignClient {
@RequestMapping(value = “/post”, method = RequestMethod.POST)
public User post(@RequestBody User user);
}
原创文章,转载请注明出处。
java开发工具下载地址及安装教程大全,点这里。
更多深度技术文章,在这里。
0人点赞
一、准备工作( [原文链接](http://www.studyshare.cn/blog/details/1187/null))
前提条件:当且仅当 spring.cloud.consul.config.format=files 时,才可用git2consul管理配置,其他格式无法使用
1、在github或者gitee等建立远程仓库,并将consul配置文件放入远程仓库进行管理java开发工具下载地址及安装教程大全,点[这里](http://www.studyshare.cn/software/index)。更多深度技术文章,在[这里](http://www.studyshare.cn/blog/index)。2、下载并安装node.js
(1)、下载
前往 https://nodejs.org/en/download/ 可下载最新版本Node.js;前往 https://nodejs.org/en/download/releases/ 可下载指定版本Node.js;根据自己的操作系统,下载安装即可
(2)、安装
基本都是按下一步走即可,此处省略
二、安装git2consul
mac系统:
执行:npm install -g git2consul 如果提示无权限
执行:sudo npm install -g git2consul 输入密码授权即可
windows系统:
执行:npm install -g git2consul-windows
三、配置git2consul
在远程仓库项目下新建git2consul.json文件加入以下内容:
{ // 配置版本 "version": "1.0", "repos": [ { // 名称,指的是在consul里面的目录名称 "name": "config", // 要同步的Git仓库 "url": "你的git仓库", "branches": [ // 要同步的分支 "master" ], // 是否要把分支名称作为Consul的key前缀 "include_branch_name": false, "hooks": [ { // 拉取模式 "type": "polling", // 同步的间隔(分钟) "interval": "1" } ] } ]}
其他选项参见:https://github.com/breser/git2consul四、启动git2consul
执行如下命令,即可启动git2consul
mac:git2consul --config-file /Users/itmuch/develop/git2consul.json
windows:git2consul-windows --config-file C:/xxxx/xxx/git2consul.json五、查看是否成功
到consul上的key/value tab中查看是否注册上去了原创文章,转载请注明出处。java开发工具下载地址及安装教程大全,点[这里](http://www.studyshare.cn/software/index)。更多深度技术文章,在[这里](http://www.studyshare.cn/blog/index)。
spring-cloud feign的多参数传递方案的更多相关文章
- Spring Cloud Feign 如何使用对象参数
概述 Spring Cloud Feign 用于微服务的封装,通过接口代理的实现方式让微服务调用变得简单,让微服务的使用上如同本地服务.但是它在传参方面不是很完美.在使用 Feign 代理 GET 请 ...
- 笔记:Spring Cloud Feign Hystrix 配置
在 Spring Cloud Feign 中,除了引入了用户客户端负载均衡的 Spring Cloud Ribbon 之外,还引入了服务保护与容错的工具 Hystrix,默认情况下,Spring Cl ...
- RestTemplate OR Spring Cloud Feign 上传文件
SpringBoot,通过RestTemplate 或者 Spring Cloud Feign,上传文件(支持多文件上传),服务端接口是MultipartFile接收. 将文件的字节流,放入ByteA ...
- Spring cloud Feign 深度学习与应用
简介 Spring Cloud Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单.Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解 ...
- 笔记:Spring Cloud Feign Ribbon 配置
由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参 ...
- 笔记:Spring Cloud Feign 其他配置
请求压缩 Spring Cloud Feign 支持对请求与响应进行GZIP压缩,以减少通信过程中的性能损耗,我们只需要通过下面二个参数设置,就能开启请求与响应的压缩功能,yml配置格式如下: fei ...
- 笔记:Spring Cloud Feign 声明式服务调用
在实际开发中,对于服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以我们通常会针对各个微服务自行封装一些客户端类来包装这些依赖服务的调用,Spring Cloud Feign 在此基础上做了进 ...
- 第六章:声明式服务调用:Spring Cloud Feign
Spring Cloud Feign 是基于 Netflix Feign 实现的,整合了 Spring Cloud Ribbon 和 Spring Cloud Hystrix,除了提供这两者的强大功能 ...
- Spring Cloud Feign Ribbon 配置
由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参 ...
- Spring Cloud feign
Spring Cloud feign使用 前言 环境准备 应用模块 应用程序 应用启动 feign特性 综上 1. 前言 我们在前一篇文章中讲了一些我使用过的一些http的框架 服务间通信之Http框 ...
随机推荐
- 【Win10】我们无法更新系统保留的分区
前言 笔者是一个萌新,这个方案也是慢慢摸索出来的,有更好的方案欢迎大家提出 前段时间用公司电脑发现win10新版本还行,回家升级自己的电脑却提示“我们无法更新系统保留的分区”.(O_o)?? 笔者 ...
- Core + Vue 后台管理基础框架4——前端授权
1.前言 上篇,我们讲了后端的授权.与后端不同,前端主要是通过功能入口如菜单.按钮的显隐来控制授权的.具体来讲,就是根据指定用户的制定权限来加载对应侧边栏菜单和页面内的功能按钮.我们一个个来讲. 2. ...
- Natas21 Writeup(共用session、session注入)
Natas21: 第一个网页 第二个网页 提示http://natas21.natas.labs.overthewire.org/页面和http://natas21-experimenter.nata ...
- Fiddler5 发送HTTP请求
1.Fiddler Composer发送HTTP请求 Composer的编辑模式主要有2种:Parsed模式和Raw模式. 实例1:Composer发送get请求 实例2:Composer发送post ...
- [剑指offer]10.斐波那契数列+青蛙跳台阶问题
10- I. 斐波那契数列 方法一 Top-down 用递归实现 def fibonacci(n): if n <= 0: return 0 if n == 1: return 1 return ...
- MySQL基础知识_2
ta表: tb表: MySQL 查询数据 SELECT 列名,列名 FROM 表名 [WHERE Clause] [LIMIT N][ OFFSET M] 查询语句中可以使用一个或者多个表,表之间使用 ...
- Cobait Strike的socks与ew代理使用
cobait strike介绍 Cobalt Strike 一款以 metasploit 为基础的 GUI 的框架式渗透测试工具,集成了端口转发.服务扫描,自动化溢出,多模式端口监听,win exe ...
- 深入Redis命令的执行过程
深入Redis命令的执行过程 Redis 服务器: Redis 服务器实现与多个客户端的连接,并处理这些客户端发送过来的请求,同时保存客户端执行命令所产生的数据到数据库中.Redis 服务器依靠资源管 ...
- leetcode之820. 单词的压缩编码 | python极简实现字典树
题目 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A. 例如,如果这个列表是 ["time", "me", "bell& ...
- Javascript之封装运动函数
@ 目录 阶段一.仅适用单位带px属性的匀速运动 阶段二.可适用单位不带px属性(如opacity)的匀速运动 阶段三.适用于多元素单一属性的匀速运动 阶段四.适用于多元素单一属性的匀速或缓冲运动 阶 ...