查看原文

一、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配置文件放入远程仓库进行管理![在这里插入图片描述](https://img-blog.csdnimg.cn/20200415160945970.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmVuZHU=,size_16,color_FFFFFF,t_70)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文件![在这里插入图片描述](https://img-blog.csdnimg.cn/20200415161010653.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmVuZHU=,size_16,color_FFFFFF,t_70)加入以下内容:
{  // 配置版本  "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![在这里插入图片描述](https://img-blog.csdnimg.cn/20200415161032436.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmVuZHU=,size_16,color_FFFFFF,t_70)五、查看是否成功
到consul上的key/value  tab中查看是否注册上去了![在这里插入图片描述](https://img-blog.csdnimg.cn/20200415161045341.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmVuZHU=,size_16,color_FFFFFF,t_70)原创文章,转载请注明出处。java开发工具下载地址及安装教程大全,点[这里](http://www.studyshare.cn/software/index)。更多深度技术文章,在[这里](http://www.studyshare.cn/blog/index)。

spring-cloud feign的多参数传递方案的更多相关文章

  1. Spring Cloud Feign 如何使用对象参数

    概述 Spring Cloud Feign 用于微服务的封装,通过接口代理的实现方式让微服务调用变得简单,让微服务的使用上如同本地服务.但是它在传参方面不是很完美.在使用 Feign 代理 GET 请 ...

  2. 笔记:Spring Cloud Feign Hystrix 配置

    在 Spring Cloud Feign 中,除了引入了用户客户端负载均衡的 Spring Cloud Ribbon 之外,还引入了服务保护与容错的工具 Hystrix,默认情况下,Spring Cl ...

  3. RestTemplate OR Spring Cloud Feign 上传文件

    SpringBoot,通过RestTemplate 或者 Spring Cloud Feign,上传文件(支持多文件上传),服务端接口是MultipartFile接收. 将文件的字节流,放入ByteA ...

  4. Spring cloud Feign 深度学习与应用

    简介 Spring Cloud Feign是一个声明式的Web Service客户端,它的目的就是让Web Service调用更加简单.Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解 ...

  5. 笔记:Spring Cloud Feign Ribbon 配置

    由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参 ...

  6. 笔记:Spring Cloud Feign 其他配置

    请求压缩 Spring Cloud Feign 支持对请求与响应进行GZIP压缩,以减少通信过程中的性能损耗,我们只需要通过下面二个参数设置,就能开启请求与响应的压缩功能,yml配置格式如下: fei ...

  7. 笔记:Spring Cloud Feign 声明式服务调用

    在实际开发中,对于服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以我们通常会针对各个微服务自行封装一些客户端类来包装这些依赖服务的调用,Spring Cloud Feign 在此基础上做了进 ...

  8. 第六章:声明式服务调用:Spring Cloud Feign

    Spring Cloud Feign 是基于 Netflix Feign 实现的,整合了 Spring Cloud Ribbon 和 Spring Cloud Hystrix,除了提供这两者的强大功能 ...

  9. Spring Cloud Feign Ribbon 配置

    由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参 ...

  10. Spring Cloud feign

    Spring Cloud feign使用 前言 环境准备 应用模块 应用程序 应用启动 feign特性 综上 1. 前言 我们在前一篇文章中讲了一些我使用过的一些http的框架 服务间通信之Http框 ...

随机推荐

  1. 常见的几种JavaScript内存泄露

    总结一下常见的几种JavaScript内存泄露: 1.意外的全局变量 全局变量属于window对象,所以只会随着window销毁才会销毁. 2.console.log() conaole.log()函 ...

  2. Core + Vue 后台管理基础框架4——前端授权

    1.前言 上篇,我们讲了后端的授权.与后端不同,前端主要是通过功能入口如菜单.按钮的显隐来控制授权的.具体来讲,就是根据指定用户的制定权限来加载对应侧边栏菜单和页面内的功能按钮.我们一个个来讲. 2. ...

  3. 可运行jar包的几种打包/部署方式(转)

    转自:https://www.cnblogs.com/yjmyzz/p/executable-jar.html java项目开发中,最终生成的jar,大概可分为二类,一类是一些通用的工具类(不包含ma ...

  4. 关于CORS(跨域资源共享)的几个http请求头小实验

    对几种与跨域相关的请求头做一个总结 关于跨域可以看:9 种常见的前端跨域解决方案(详解) 看完后可以配合我的代码做些实验,看看注释掉某个响应头会发生什么,整体代码会在最后贴出 跨域简单请求 需要在服务 ...

  5. Android项目目录结构模板以及简单说明

    1) src  文件 编写java代码的文件目录,遵循java的命名规范.分包 2) gen  文件      包含了android的资源文件的标识符,是不需要程序员维护,是自动添加的 3) asse ...

  6. 洛谷 P5176 公约数 题解

    原题链接 我天哪 大大的庆祝一下: 数论黑题 \(T1\) 达成! 激动地不行 记住套路:乱推 \(\gcd\),欧拉筛模板,然后乱换元,乱换式子,完了整除分块,欧拉筛和前缀和就解决了! \[\sum ...

  7. 超参数、验证集和K-折交叉验证

    本文首发自公众号:RAIS ​前言 本系列文章为 <Deep Learning> 读书笔记,可以参看原书一起阅读,效果更佳. 超参数 参数:网络模型在训练过程中不断学习自动调节的变量,比如 ...

  8. 分享个Class工具类

    import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.net.JarURLCo ...

  9. js 的位运算

    api 用途 待更...

  10. JSP学习笔记(三)

    jsp与javabean 编写javabean 创建与使用bean 获取和修改bean的属性 javabean是一种java类,是通过封装属性和方法成为具有某种功能或处理某个业务的对象,简称bean, ...