feign踩坑_SpringCloud Feign context-path踩到的坑

最近在使用SpringCloud的context-path时,遇到了一些坑,记录一下。

server.context-path(上下文)

服务提供者的application配置文件中有一个属性叫server.context-path,是上下文。

如下示:

server.context-path=/dev

如果没有上下文,我们访问一个接口的路径可能是:

localhost:8080/user/

如果有上下文dev,那么这个url必须写成:

localhost:8080/dev/user/

也就是说:

服务消费者对服务提供者的方法进行访问时,url也要加上context-path上下文。

服务消费者Feign

我这边项目使用的是Feign进行服务消费,将context-path加在了方法的value里面。

如下:

@FeignClient(value="user",fallback=UserMsgHystrix.class)

public interface UserMsgService {

/**

* 推送消息

* 注意:此处的dev 是服务提供者的上下文

*/

@RequestMapping(value = "/dev/sentMsg", method = RequestMethod.POST)

public JSONObject sentMsgToWeChat(JSONObject invoiceJson) ;

}

多个环境的context-path

如果只有一个本地环境,那么采用上面的做法就解决了。

但是在实际开发中,往往有多个环境。比如本地环境,开发环境,测试环境,正式环境。

而不同的环境又有不同的上下文,比如开发环境上下文设为/dev,测试环境上下文设为/test。

不同环境的上下文,可以使用@FeignClient的path属性,读取properties文件的值。

查看@FeignClient的源码,可以看到path的注释:

/**

* Path prefix to be used by all method-level mappings. Can be used with or without

*/

String path() default "";

意思就是:path可以给方法的url添加前缀

在服务消费者的开发环境properties文件中,加入:

providerContext=dev

在服务消费者的测试环境properties文件中,加入:

providerContext=test

在服务消费者的正式环境properties文件中,加入:

providerContext=/

Feign服务消费的代码如下示:

@FeignClient(value="user",fallback=UserMsgHystrix.class)

public interface UserMsgService {

@RequestMapping(value = "sentMsg",path="${providerContext}", method = RequestMethod.POST)

public JSONObject sentMsgToWeChat(JSONObject invoiceJson) ;

}

初学spring boot踩过的坑

一.搭建spring boot环境 maven工程 pom文件内容

【转载】Fragment 全解析(1):那些年踩过的坑

http://www.jianshu.com/p/d9143a92ad94 Fragment系列文章:1.Fragment全解析系列(一):那些年踩过的坑2.Fragment全解析系列(二):正确的使 ...

CentOS7.2上用KVM安装虚拟机window10踩过的坑

最近两个星期一直在琢磨kvm安装window10操作系统,并且通过桥接模式与外界通信,经历了九九八十一难,终于搞定.下面就记录以下我们在探索的过程中踩过的坑. 安装KVM 1. 系统要求:需要一台可以 ...

wrk 使用记录及踩过的坑

wrk是什么?https://github.com/wg/wrk wrk 是一个非常小巧高效的开源性能测试工具,支持lua脚本来创建复杂的测试场景.wrk 的一个很好的特性就是能用很少的线程压出很大的 ...

vue项目开发中踩过的坑

一.路由 这两天移动端的同事在研究vue,跟我说看着我的项目做的,子路由访问的时候是空白的,我第一反应是,不会模块没加载进来吧,还是....此处省略一千字... 废话不多说上代码 路由代码 { pat ...

git工作中常用命令-工作中踩过的坑

踩坑篇又来啦,这是我在工作中从git小白进化到现在工作中运用自如的过程中,踩过的坑,以及解决办法. 1.基于远程develop分支,建一个本地task分支,并切换到该task分支 git checko ...

SpringCloud Feign 之 Fallback初体验

SpringCloud Feign 之 Fallback初体验 在微服务框架SpringCloud中,Feign是其中非常重要且常用的组件.Feign是声明式,模板化的HTTP客户端,可以帮助我们更方 ...

创建优化的Go镜像文件以及踩过的坑

在Docker上创建Go镜像文件并不困难,但建立的文件很大,接近1G,使用起来不太方便.Docker镜像的一个主要难题就是如何优化,创建小的镜像.我们可以用多级构建的方法来创建Docker镜像文件,它 ...

最细的eclipse 安装maven踩过的坑

Eclipse安装maven插件踩过的坑 在线安装maven eclipse安装maven插件,在网上有各种各样的方法,博主使用过的也不止一种,但是留下的印象总是时好时不好,同样的方法也不确定那一次能 ...

SpringCloud Feign通过FallbackFactory显示异常信息

SpringCloud Feign可以进行服务消费,而且内置了Hystrix,能够进行熔断. Feign可以通过fallback指定熔断回调的类.代码示例及讲解可见: https://www.cnbl ...

随机推荐

c语言选择排序

简单选择排序是经常用到的一种排序算法. 原理: 1.简单选择排序一句话概括:每次选择无序数列中最小的将其放在有序数列的最后. 2.在简单选择排序中,我们用初始化的数字int a[6]={2,5,6,3 ...

谈谈主函数main

我们来看一下主函数 public class HelloWorld{ public static void main(String[] args){ System.out.println(" ...

Android学习笔记之dispatchTouchEvent和OnInterceptTouchEvent和OnTouchEvent三个方法之间的联系...

PS:好久没有写博客了,项目正式开始启动了,但是怎么也打不起精神来...可能还是不适应放假留校...这下一年只能回家一次了...伤感...写篇博客舒坦下... 学习内容:   Android中disp ...

C++中派生类对象的内存布局

主要从三个方面来讲: 1 单一继承 2 多重继承 3 虚拟继承 1 单一继承 (1)派生类完全拥有基类的内存布局,并保证其完整性. 派生类可以看作是完整的基类的Object再加上派生类自己的Objec ...

可自定义导航条功能案例ios项目源码

可定制的navigationitem ,当我们使用系统的方法设置navigationItem的leftItem或者rightItem时,我们会 发现item位置会有偏差(左边的偏右,右边的偏左).当设 ...

[置顶] 【VB.NET2010】在空间上显示提示气泡框的方法

在VB6中,有ToolTip这个属性,可以设置鼠标悬浮在控件上的时候显示的图像. 而,在VB.NET中,实现这个功能需要使用一个类,ToolTip类. 代码如下(为了立即起效,建议将这些代码放在For ...

Android如何监听蓝牙耳机的按键事件(转)

源: Android如何监听蓝牙耳机的按键事件 写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「 ...

websocket的属性readyState

webSocket的readyState属性用来定义连接状态,该属性的值有下面几种: 0 :对应常量CONNECTING (numeric value 0), 正在建立连接连接,还没有完成.The c ...

<TCP/IP>ICMP报文的分类

Internet控制报文协议,即为ICMP(Internet Control Message Protocal),用于主机,路由器之间传递信息,其目的是让我们能够检测网路的连线状况﹐也能确保连线的准确 ...

【Android】jar包Proguard混淆方法

本文章的前提条件是,读者已经掌握了正确导出jar包的技能. 1.拷贝Android项目中“proguard.cfg”文件到你指定的位置,并改名为“proguard.pro”,此步是为proguardg ...

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值