博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring cloud之Feign的使用
阅读量:3965 次
发布时间:2019-05-24

本文共 1910 字,大约阅读时间需要 6 分钟。

原始的调用客户端的方式是通过注入restTemplate的方式

restTemplate.getForObject("http://CLIENT/hello", String.class)

 

通过feign的方式

配置消费者项目cloud-consume

pom.xml

依赖jar

org.springframework.cloud
spring-cloud-starter-openfeign

 

application.yml

添加启动feign 可实现错误回调

feign:  hystrix:    enabled: true

 

启动应用类

ClondConsumeApplication.java

添加注解@EnableFeignClients

 

HelloService.java接口

package com.tp.soft.cloudconsume.service;import com.tp.soft.cloudconsume.service.impl.HelloServiceFallback;import org.springframework.cloud.openfeign.FeignClient;import org.springframework.web.bind.annotation.GetMapping;@FeignClient(value = "CLIENT", fallback = HelloServiceFallback.class)public interface HelloService {    @GetMapping("/hello")    String hello();}

 

其中CLIENT则为注册中心被调用的应用名,/hello完全和客户端业务接口一样,fallback则为错误回调的方法,同时可以防止应用雪崩效应.

 

HelloServiceFallback.java接口

package com.tp.soft.cloudconsume.service.impl;import com.tp.soft.cloudconsume.service.HelloService;import org.springframework.stereotype.Component;@Componentpublic class HelloServiceFallback implements HelloService {    @Override    public String hello() {        return "request error";    }}

 

HelloController.java

package com.tp.soft.cloudconsume.controller;import com.tp.soft.cloudconsume.service.HelloService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;@RestControllerpublic class HelloController {//    @Autowired//    RestTemplate restTemplate;    @Resource    private HelloService helloService;    @GetMapping("hi")    public String hi(){        //return restTemplate.getForObject("http://CLIENT/hello", String.class);        return helloService.hello();    }}

 

和原来在controller调用接口一模一样的去调用就可以了

 

最后的效果:

 

 

 

 

转载地址:http://sqkki.baihongyu.com/

你可能感兴趣的文章
Flutter Dart 和 Flutter json转实体类(插件自动生成)
查看>>
Flutter 路由跳转fluro
查看>>
Flutter 日期插件date_format 中文 国际化 及flutter_cupertino_date_picker
查看>>
Flutter 插件笔记 | 屏幕适配 flutter_screenutil
查看>>
Flutter UI基础 - 侧拉抽屉菜单
查看>>
Flutter UI基础 - AppBar中标题文字如何居中
查看>>
Flutter UI基础 - Drawer 抽屉视图与自定义header
查看>>
Flutter UI基础 - 点击展开和关闭
查看>>
Flutter UI基础 - GridView
查看>>
Flutter UI - 打造一个圆形滑块(Slider)
查看>>
Flutter UI基础 - 分割线效果实现
查看>>
Flutter UI基础 - DecoratedBox组件
查看>>
Flutter UI基础 - 使用InkWell给任意Widget添加点击事件
查看>>
OC WKWebView的使用
查看>>
Flutter UI基础 - Image.asset 图片铺满布局
查看>>
Flutter UI基础 - Row、Column详解
查看>>
Flutter UI基础 - 添加背景图片
查看>>
Flutter UI基础 - 布局之Row/Column/Stack
查看>>
Flutter UI基础 - 层叠布局Stack的使用
查看>>
Flutter UI基础 - webview 使用和交互
查看>>