服务提供者

服务提供者,是位于其他项目里面的。

服务提供者提供的方法,在Controller层里面,有可访问的Url。

@Controller
@RequestMapping("/order")
public class OrderDetailController { @ResponseBody
@RequestMapping(value="/detail/cdkey",method=RequestMethod.POST)
public OrderDetail getOrderDetailByCdkey(@RequestParam("cdkey") String cdkey){
//其他逻辑忽略
} }

服务消费者Feign

@FeignClient里面的value为服务提供者的服务名,fallback为服务熔断的class。

@RequestMapping的value属性为服务提供者的Url。

@FeignClient(value = "base",fallback = OrderDetailHystrix.class)
public interface OrderDetailService { @RequestMapping(value="order/detail/cdkey",method=RequestMethod.POST)
JSONObject getOrderDetailByCdkey(@RequestParam("cdkey") String cdkey);
}

除了使用如上的@RequestParam,还可以使用@RequestBody传递对象,比如

   @RequestMapping(value="order/detail/cdkey",method=RequestMethod.POST)
JSONObject getOrderDetailByCdkey(@RequestBody User user);

如果需要使用占位符,也可以用@PathVariable,示例如下:

 @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
Result get(@PathVariable("id") Integer id);

注意,最好让方法参数注解和服务提供者的方法参数注解保持一致。

服务熔断

出现异常,可以通过熔断保护服务。

熔断器要实现Feign接口。还要加上注解@Component。

@Component
public class OrderDetailHystrix implements OrderDetailService { @Override
public JSONObject getOrderDetailByCdkey(String cdkey) {
JSONObject resultJson = new JSONObject();
resultJson.put("errcode",AUTH_ORDER_SERVICE_ERROR.getCode() );
resultJson.put("description", AUTH_ORDER_SERVICE_ERROR.getMsg() );
return resultJson;
} }

使用Feign服务接口

可以在其他类(Service或Controller都可以)中注入已经声明的Feign接口,并调用其中的方法。

注入方式如下所示:

	@Autowired
private OrderDetailService OrderDetailService;

使用服务中的方法:

	//调用订单详情服务,获取订单日期
JSONObject jsonObject=orcmOrderDetailService.getOrderDetailByCdkey(cdkey);

如果在使用Feign进行服务消费时出错,可以参考以下内容进行排错:

微服务SpringCloud无法进行服务消费

Spring Cloud Feign踩坑记录(二)

SpringCloud Feign 常用代码的更多相关文章

  1. SpringCloud+Feign环境下文件上传与form-data同时存在的解决办法(2)

    书接上文. 上文中描述了如何在 SpringCloud+Feign环境下上传文件与form-data同时存在的解决办法,实践证明基本可行,但却会引入其他问题. 主要导致的后果是: 1. 无法与普通Fe ...

  2. SpringCloud Feign 之 Fallback初体验

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

  3. SpringCloud Feign通过FallbackFactory显示异常信息

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

  4. GCD 常用代码

    GCD 常用代码 体验代码 异步执行任务 - (void)gcdDemo1 { // 1. 全局队列 dispatch_queue_t q = dispatch_get_global_queue(0, ...

  5. 转--Android实用的代码片段 常用代码总结

    这篇文章主要介绍了Android实用的代码片段 常用代码总结,需要的朋友可以参考下     1:查看是否有存储卡插入 复制代码 代码如下: String status=Environment.getE ...

  6. 刀哥多线程之03GCD 常用代码

    GCD 常用代码 体验代码 异步执行任务 - (void)gcdDemo1 { // 1. 全局队列 dispatch_queue_t q = dispatch_get_global_queue(0, ...

  7. jquery常用代码集锦

    1. 如何修改jquery默认编码(例如默认GB2312改成 UTF-8 ) 1 2 3 4 5 $.ajaxSetup({     ajaxSettings : {         contentT ...

  8. Mysql:常用代码

    C/S: Client Server B/S: Brower Server Php主要实现B/S .net IIS Jave TomCat LAMP:L Mysql:常用代码 Create table ...

  9. javascript常用代码大全

    http://caibaojian.com/288.html    原文链接 jquery选中radio //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_ca ...

随机推荐

  1. IntelliJ idea鼠标移动到类上显示文档document(javadoc)内容

    IntelliJ idea鼠标移动到类上显示文档document(javadoc)内容 Step 1:设置鼠标移动到类上自动显示Javadoc文档 step2:为jdk下载javadoc Step3: ...

  2. v-for循环列表,展开样式随手风琴

    <div class="product_box" v-for="(item,index) of kinds" :key="index" ...

  3. echarts Y轴名称显示不全(转载)

    转载来源:https://blog.csdn.net/qq8241994/article/details/90720657今天在项目的开发中遇到的一个问题,echarts Y轴左侧的文字太多了,显示不 ...

  4. session有效期设置的两种方式

    /**session有效期设置的两种方式: * 1.代码设置:session.setMaxInactiveInterval(30);//单位:秒.30秒有效期,默认30分钟. * 2.web.xml中 ...

  5. 教你如何配置linux用户实现禁止ssh登陆机器但可用sftp登录!

    构想和目标最近有个这样的诉求:基于对线上服务器的保密和安全,不希望开发人员直接登录线上服务器,因为登录服务器的权限太多难以管控,如直接修改代码.系统配置,并且也直接连上mysql.因此希望能限制开发人 ...

  6. 【转】Jperf2.0下载及使用方法介绍

    iPerf图形化工具Jperf图文使用教程   在前文介绍iPerf时,我们就提到了Jperf这款软件,因为iPerf没有图形界面,操作起来不是太方便,而Jperf则是将iPerf命令行图形化的JAV ...

  7. ES6--不定参数

    <一>,在讨论ES6的不定参数之前,我们先一起回顾一下ECMAScript5的无名参数. 早先,javascript提供arguments对象检查函数的所有参数,从而不必定义每一个要用的参 ...

  8. CodeCombat第一关:KITHGARD地牢之KITHGARD精通

    https://www.cnblogs.com/OctoptusLian/p/7397602.html https://www.jianshu.com/p/065581a84879 https://w ...

  9. unicode转换为中文

    unicode转换为中文 \u5f53\u5730\u65f6\u95f42019\u5e747\u670813\u65e5\uff0c\u82f1\u56fd\u8d1d\u5fb7\u798f\u ...

  10. UVA11424 GCD - Extreme (I)[数论]

    其实这题我也没太明白... 我们要求 \[ \sum_{i=1}^{N-1}\sum_{j=i+1}^Ngcd(i,j) \] 引理: 我们要求\(gcd(i,j)=k\)的个数,可转化为求\(gcd ...