From a58e9b7b3e8a62408e10b056310ead4c3ceb57d3 Mon Sep 17 00:00:00 2001
From: mrbird <852252810@qq.com>
Date: Tue, 21 Aug 2018 16:06:11 +0800
Subject: [PATCH] =?UTF-8?q?Spring=20Cloud=20Feign=20=E5=A3=B0=E6=98=8E?=
=?UTF-8?q?=E5=BC=8F=E6=9C=8D=E5=8A=A1=E8=B0=83=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Eureka-Client/pom.xml | 60 ++++++++++++++++
.../com/example/demo/DemoApplication.java | 15 ++++
.../demo/controller/TestController.java | 32 +++++++++
.../demo/controller/UserController.java | 47 +++++++++++++
.../java/com/example/demo/domain/User.java | 55 +++++++++++++++
.../src/main/resources/application.yml | 13 ++++
.../Eureka-Service/pom.xml | 69 +++++++++++++++++++
.../com/example/demo/DemoApplication.java | 14 ++++
.../src/main/resources/application-peer1.yml | 15 ++++
.../src/main/resources/application-peer2.yml | 15 ++++
.../src/main/resources/application.yml | 9 +++
.../Feign-Consumer/pom.xml | 63 +++++++++++++++++
.../com/example/demo/DemoApplication.java | 21 ++++++
.../demo/controller/TestController.java | 42 +++++++++++
.../java/com/example/demo/domain/User.java | 53 ++++++++++++++
.../com/example/demo/service/UserService.java | 29 ++++++++
.../demo/service/UserServiceFallback.java | 41 +++++++++++
.../src/main/resources/application.yml | 22 ++++++
18 files changed, 615 insertions(+)
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/pom.xml
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/DemoApplication.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/TestController.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/UserController.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/domain/User.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/resources/application.yml
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/pom.xml
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/java/com/example/demo/DemoApplication.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer1.yml
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer2.yml
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application.yml
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/pom.xml
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/DemoApplication.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/controller/TestController.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/domain/User.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserService.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserServiceFallback.java
create mode 100644 33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/resources/application.yml
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/pom.xml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/pom.xml
new file mode 100644
index 0000000..8149f25
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/pom.xml
@@ -0,0 +1,60 @@
+
+
+ 4.0.0
+
+ com.example
+ Eureka-Client
+ 0.0.1-SNAPSHOT
+ jar
+
+ Eureka-Client
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.13.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ Edgware.SR3
+ pom
+ import
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/DemoApplication.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/DemoApplication.java
new file mode 100644
index 0000000..5d549d2
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/DemoApplication.java
@@ -0,0 +1,15 @@
+package com.example.demo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+@EnableDiscoveryClient
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
+public class DemoApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(DemoApplication.class, args);
+ }
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/TestController.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/TestController.java
new file mode 100644
index 0000000..c50fdd4
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/TestController.java
@@ -0,0 +1,32 @@
+package com.example.demo.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class TestController {
+
+ private Logger log = LoggerFactory.getLogger(this.getClass());
+
+ @Autowired
+ private DiscoveryClient client;
+
+ @GetMapping("/info")
+ public String info() {
+ @SuppressWarnings("deprecation")
+ ServiceInstance instance = client.getLocalServiceInstance();
+ String info = "host:" + instance.getHost() + ",service_id:" + instance.getServiceId();
+ log.info(info);
+ return info;
+ }
+
+ @GetMapping("/hello")
+ public String hello() {
+ return "hello world";
+ }
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/UserController.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/UserController.java
new file mode 100644
index 0000000..64dadce
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/controller/UserController.java
@@ -0,0 +1,47 @@
+package com.example.demo.controller;
+
+import com.example.demo.domain.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+@RequestMapping("user")
+public class UserController {
+
+ private Logger log = LoggerFactory.getLogger(this.getClass());
+
+ @GetMapping("/{id:\\d+}")
+ public User get(@PathVariable Long id) {
+ log.info("获取用户id为 " + id + "的信息");
+ return new User(id, "mrbird", "123456");
+ }
+
+ @GetMapping
+ public List get() {
+ List list = new ArrayList<>();
+ list.add(new User(1L, "mrbird", "123456"));
+ list.add(new User(2L, "scott", "123456"));
+ log.info("获取用户信息 " + list);
+ return list;
+ }
+
+ @PostMapping
+ public void add(@RequestBody User user) {
+ log.info("新增用户成功 " + user);
+ }
+
+ @PutMapping
+ public void update(@RequestBody User user) {
+ log.info("更新用户成功 " + user);
+ }
+
+ @DeleteMapping("/{id:\\d+}")
+ public void delete(@PathVariable Long id) {
+ log.info("删除用户成功 " + id);
+ }
+
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/domain/User.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/domain/User.java
new file mode 100644
index 0000000..4ce63e1
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/java/com/example/demo/domain/User.java
@@ -0,0 +1,55 @@
+package com.example.demo.domain;
+
+import java.io.Serializable;
+
+public class User implements Serializable {
+
+ private static final long serialVersionUID = 1339434510787399891L;
+ private Long id;
+
+ private String username;
+
+ private String password;
+
+ public User() {
+ }
+
+ public User(Long id, String username, String password) {
+ this.id = id;
+ this.username = username;
+ this.password = password;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ @Override
+ public String toString() {
+ return "User{" +
+ "id=" + id +
+ ", username='" + username + '\'' +
+ ", password='" + password + '\'' +
+ '}';
+ }
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/resources/application.yml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/resources/application.yml
new file mode 100644
index 0000000..8bd92b2
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Client/src/main/resources/application.yml
@@ -0,0 +1,13 @@
+server:
+ port: 8082
+
+spring:
+ application:
+ name: Server-Provider
+
+eureka:
+ client:
+ register-with-eureka: true
+ fetch-registry: true
+ serviceUrl:
+ defaultZone: http://mrbird:123456@peer1:8080/eureka/,http://mrbird:123456@peer2:8081/eureka/
\ No newline at end of file
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/pom.xml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/pom.xml
new file mode 100644
index 0000000..4bdff94
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/pom.xml
@@ -0,0 +1,69 @@
+
+
+ 4.0.0
+
+ com.example
+ Eureka-Service
+ 0.0.1-SNAPSHOT
+ jar
+
+ Eureka-Service
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.13.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ Edgware.SR3
+ pom
+ import
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka-server
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+
+
+
+
+ nexus-aliyun
+ Nexus aliyun
+ http://maven.aliyun.com/nexus/content/groups/public
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/java/com/example/demo/DemoApplication.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/java/com/example/demo/DemoApplication.java
new file mode 100644
index 0000000..f1a6ef5
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/java/com/example/demo/DemoApplication.java
@@ -0,0 +1,14 @@
+package com.example.demo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+
+@EnableEurekaServer
+@SpringBootApplication
+public class DemoApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(DemoApplication.class, args);
+ }
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer1.yml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer1.yml
new file mode 100644
index 0000000..22742c9
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer1.yml
@@ -0,0 +1,15 @@
+server:
+ port: 8080
+
+spring:
+ application:
+ name: Eureka-Server
+
+eureka:
+ instance:
+ hostname: peer1
+ client:
+ serviceUrl:
+ defaultZone: http://mrbird:123456@peer2:8081/eureka/
+ server:
+ enable-self-preservation: false
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer2.yml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer2.yml
new file mode 100644
index 0000000..960449b
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application-peer2.yml
@@ -0,0 +1,15 @@
+server:
+ port: 8081
+
+spring:
+ application:
+ name: Eureka-Server
+
+eureka:
+ instance:
+ hostname: peer2
+ client:
+ serviceUrl:
+ defaultZone: http://mrbird:123456@peer1:8080/eureka/
+ server:
+ enable-self-preservation: false
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application.yml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application.yml
new file mode 100644
index 0000000..09c8efe
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Eureka-Service/src/main/resources/application.yml
@@ -0,0 +1,9 @@
+security:
+ basic:
+ enabled: true
+ user:
+ name: mrbird
+ password: 123456
+spring:
+ profiles:
+ active: peer1
\ No newline at end of file
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/pom.xml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/pom.xml
new file mode 100644
index 0000000..4cc1245
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/pom.xml
@@ -0,0 +1,63 @@
+
+
+ 4.0.0
+
+ com.example
+ Feign-Consumer
+ 0.0.1-SNAPSHOT
+ jar
+
+ Feign-Consumer
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.13.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ Edgware.SR3
+ pom
+ import
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.cloud
+ spring-cloud-starter-feign
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/DemoApplication.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/DemoApplication.java
new file mode 100644
index 0000000..a5074b8
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/DemoApplication.java
@@ -0,0 +1,21 @@
+package com.example.demo;
+
+import feign.Logger;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.feign.EnableFeignClients;
+import org.springframework.context.annotation.Bean;
+
+@EnableDiscoveryClient
+@EnableFeignClients
+@SpringBootApplication
+public class DemoApplication {
+ @Bean
+ Logger.Level feignLoggerLevel() {
+ return Logger.Level.FULL;
+ }
+ public static void main(String[] args) {
+ SpringApplication.run(DemoApplication.class, args);
+ }
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/controller/TestController.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/controller/TestController.java
new file mode 100644
index 0000000..c38ae45
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/controller/TestController.java
@@ -0,0 +1,42 @@
+package com.example.demo.controller;
+
+import com.example.demo.domain.User;
+import com.example.demo.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+public class TestController {
+
+ @Autowired
+ private UserService userService;
+
+ @GetMapping("user/{id}")
+ public User getUser(@PathVariable Long id) {
+ return userService.get(id);
+ }
+
+ @GetMapping("user")
+ public List getUsers() {
+ return userService.get();
+ }
+
+ @PostMapping("user")
+ public void addUser() {
+ User user = new User(1L, "mrbird", "123456");
+ userService.add(user);
+ }
+
+ @PutMapping("user")
+ public void updateUser() {
+ User user = new User(1L, "mrbird", "123456");
+ userService.update(user);
+ }
+
+ @DeleteMapping("user/{id}")
+ public void deleteUser(@PathVariable Long id) {
+ userService.delete(id);
+ }
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/domain/User.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/domain/User.java
new file mode 100644
index 0000000..acd13d4
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/domain/User.java
@@ -0,0 +1,53 @@
+package com.example.demo.domain;
+
+import java.io.Serializable;
+
+public class User implements Serializable {
+
+ private static final long serialVersionUID = 1339434510787399891L;
+ private Long id;
+ private String username;
+ private String password;
+
+ public User() {
+ }
+
+ public User(Long id, String username, String password) {
+ this.id = id;
+ this.username = username;
+ this.password = password;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ @Override
+ public String toString() {
+ return "User{" +
+ "id=" + id +
+ ", username='" + username + '\'' +
+ ", password='" + password + '\'' +
+ '}';
+ }
+}
\ No newline at end of file
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserService.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserService.java
new file mode 100644
index 0000000..43cbcb7
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserService.java
@@ -0,0 +1,29 @@
+package com.example.demo.service;
+
+import com.example.demo.domain.User;
+import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author MrBird
+ */
+@FeignClient(value = "Server-Provider", fallback = UserServiceFallback.class)
+public interface UserService {
+
+ @GetMapping("user/{id}")
+ public User get(@PathVariable("id") Long id);
+
+ @GetMapping("user")
+ public List get();
+
+ @PostMapping("user")
+ public void add(@RequestBody User user);
+
+ @PutMapping("user")
+ public void update(@RequestBody User user);
+
+ @DeleteMapping("user/{id}")
+ public void delete(@PathVariable("id") Long id);
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserServiceFallback.java b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserServiceFallback.java
new file mode 100644
index 0000000..46263cd
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/java/com/example/demo/service/UserServiceFallback.java
@@ -0,0 +1,41 @@
+package com.example.demo.service;
+
+import com.example.demo.domain.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author MrBird
+ */
+@Component
+public class UserServiceFallback implements UserService {
+ private Logger log = LoggerFactory.getLogger(this.getClass());
+
+ @Override
+ public User get(Long id) {
+ return new User(-1L, "default", "123456");
+ }
+
+ @Override
+ public List get() {
+ return null;
+ }
+
+ @Override
+ public void add(User user) {
+ log.info("test fallback");
+ }
+
+ @Override
+ public void update(User user) {
+ log.info("test fallback");
+ }
+
+ @Override
+ public void delete(Long id) {
+ log.info("test fallback");
+ }
+}
diff --git a/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/resources/application.yml b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/resources/application.yml
new file mode 100644
index 0000000..16cb1b6
--- /dev/null
+++ b/33.Spring-Cloud-Feign-Declarative-REST-Client/Feign-Consumer/src/main/resources/application.yml
@@ -0,0 +1,22 @@
+server:
+ port: 9000
+
+spring:
+ application:
+ name: Server-Consumer
+
+eureka:
+ client:
+ serviceUrl:
+ defaultZone: http://mrbird:123456@peer1:8080/eureka/,http://mrbird:123456@peer2:8081/eureka/
+
+feign:
+ hystrix:
+ enabled: true
+logging:
+ level:
+ com:
+ example:
+ demo:
+ service:
+ UserService: debug