1 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId>
<artifactId>Spring-Cloud-Feign</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>Spring-Cloud-Feign</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency> </dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

2 配置文件

spring.application.name=feign-consumer
server.port=4001
eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/

3 启动类

@EnableFeignClients
@EnableFeignClients
@SpringCloudApplication
public class SpringCloudFeignApplication { public static void main(String[] args) {
SpringApplication.run(SpringCloudFeignApplication.class, args);
}
}

4 根据服务名称来指定服务提供方

//根据服务名称来指定服务提供方
@FeignClient(name="service-a",fallback=TestServiceAFallBack.class)
public interface TestServiceA {
// 通过注解指定访问方式,访问路径,访问参数
@RequestMapping(method = RequestMethod.GET, value = "/getm")
String getMessage(@RequestParam("message") String message); }

5 回退类 当service-a  getm不可访问是 会返回已经写好的信息

@Component
public class TestServiceAFallBack implements TestServiceA{ @Override
public String getMessage(String message) {
// TODO Auto-generated method stub
return "the server is error";
}
}

6 编写测试类

@RestController
public class TestController {
@Autowired
TestServiceA testServiceA; @GetMapping("/test")
public String test(String message) {
return testServiceA.getMessage(message);
} }

7 测试

启动 eureka注册中心  service-a  和feign三个项目

访问  http://127.0.0.1:4001/test?message=123 返回  hello world:123

把服务service-a停掉 再次访问  http://127.0.0.1:4001/test?message=123

返回

the server is error

最新文章

  1. c# 中几个关于string问题
  2. 字符串匹配--manacher算法模板
  3. 通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用 矩形的左上角坐标来标识,包含: 添加两个属性:矩形左上角坐标startX和startY。 两个构造方法: 带4个参数的构造方法,用于对startX、startY、width和height属性 初始化; 不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0 的矩形; 添加一个方法: 判断某个点是否在矩形内部的方法
  4. iOS开发之 在release版本禁止输出NSLog内容
  5. Week8 软件规格说明书
  6. spoj 379
  7. Chrome浏览器扩展开发系列之八:Chrome扩展的数据存储
  8. 再说php依赖注入
  9. Mongodb百亿级数据添加,修改,删除,查询等性能测试【四】
  10. java1.8--Optional类
  11. C++ namespace的作用
  12. Linux简易APR内存池学习笔记(带源码和实例)
  13. supervisor来自动化部署,集成git
  14. css文字上下居中,一行文字居中,两行或多行文字同样居中
  15. x86 asm调用框架(vs2015)
  16. Gym - 100781G-Goblin Garden Guards
  17. python appium 封装获取toast方法
  18. L178 smart meter watchdog
  19. vue调用豆瓣API加载图片403问题
  20. utp

热门文章

  1. PostgreSQL的递归查询(with recursive) ,替代oracle 的级联查询connect by
  2. html5 video标签播放视频流
  3. notepad++之个性化配置
  4. PHP匹配中文,匹配车牌号
  5. Mysql 查询时间段是否可用,查询时间段是否有交集
  6. Windows下安装gcc环境
  7. MyBatis参数条件查询传入的值为0时的判断
  8. CORS解决跨域问题(403问题)
  9. Django框架之第四篇(视图层)--HttpRequest对象、HttpResponse对象、JsonResponse、CBV和FBV、文件上传
  10. pytest_skip跳过用例