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框 ...
随机推荐
- [置顶] Django-rest framework框架
出师表 先帝创业未半而中道崩殂,今天下三分,益州疲弊此诚危急存亡之秋也.然侍卫之臣不懈于内忠志之士忘身于外者盖追先帝之殊遇,欲报之于陛下也.诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻 ...
- Array.isArray() 判断是不是数组
var arr = new Array(); if(Array.isArray()){ console.log('yes') } else { conssole.log('no') }
- javaScript 基础知识汇总 (十四)
1.回调 什么是回调? 个人理解,让函数有序的执行. 示例: function loadScript(src,callback){ let script = document.createElemen ...
- Spring框架——IOC 自动装载
IOC自动装载有两种形式 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- 记一次有趣的thinkphp代码执行
0x00 前言 朋友之前给了个站,拿了很久终于拿下,简单记录一下. 0x01 基础信息 漏洞点:tp 5 method 代码执行,payload如下 POST /?s=captcha _method= ...
- 第十六周Java实验作业
实验十六 线程技术 实验时间 2017-12-8 1.实验目的与要求 (1) 掌握线程概念: 多线程是进程执行过程中产生的多条执行线索,线程是比进程执行更小的单位. 线程不能独立存在,必须存在于进程 ...
- 数据库-Mysql语句
Mysql语句 不定时更新 1.数据库相关的语句 /* 数据库操作 */ ------------------ -- 启动MySQL net start mysql -- 接与断开服务器 mysql ...
- 洛谷 P5596 【XR-4】题 题解
原题链接 本题只要 推式子 就可以了. \[y^2-x^2=ax + b \] \[a x + x^2 = y^2 - b \] \[4 x^2 + 4 ax = 4 y^2 - 4b \] \[(2 ...
- Linux命令ip addr详解
熟悉Linux操作系统的同学对于ip addr命令应该不陌生,知道它是用来查看本地IP地址的,除了IP地址,其它额外的信息有必要了解一下. root@test:~# ip addr1: lo: < ...
- K:缓存相关问题
缓存的作用在于提高程序的响应速度,一般用于程序存储运算所需数据或程序运算后的结果,以便再次访问或运算相同的程序(数据同样相同)时,能够得到快速的响应(适用于读多写少的场景).在现代计算机体系结构中,根 ...