From 8d136d0f680eb08774e3d85dedc29af42b328b7f Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Tue, 15 Aug 2023 20:21:27 +0800 Subject: [PATCH] =?UTF-8?q?Hystrix=E7=86=94=E6=96=AD=E6=95=B4=E5=90=88?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/test/BorrowApplication.java | 2 ++ .../java/com/test/controller/BorrowController.java | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/borrow-service/src/main/java/com/test/BorrowApplication.java b/borrow-service/src/main/java/com/test/BorrowApplication.java index ea9095c..70956cb 100644 --- a/borrow-service/src/main/java/com/test/BorrowApplication.java +++ b/borrow-service/src/main/java/com/test/BorrowApplication.java @@ -4,6 +4,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; +import org.springframework.cloud.netflix.hystrix.EnableHystrix; import org.springframework.cloud.openfeign.EnableFeignClients; /** @@ -13,6 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; * @author yovinchen * @Create 2023/8/14 16:25 */ +@EnableHystrix //启用Hystrix @SpringBootApplication @EnableFeignClients public class BorrowApplication { diff --git a/borrow-service/src/main/java/com/test/controller/BorrowController.java b/borrow-service/src/main/java/com/test/controller/BorrowController.java index 52b81ea..7a59bc4 100644 --- a/borrow-service/src/main/java/com/test/controller/BorrowController.java +++ b/borrow-service/src/main/java/com/test/controller/BorrowController.java @@ -1,5 +1,6 @@ package com.test.controller; +import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; import com.test.entity.UserBorrowDetail; import com.test.service.BorrowService; import org.springframework.web.bind.annotation.PathVariable; @@ -8,6 +9,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.Collections; /** @@ -23,8 +25,16 @@ public class BorrowController { @Resource BorrowService service; + @HystrixCommand(fallbackMethod = "onError") //使用@HystrixCommand来指定备选方案 @RequestMapping("/borrow/{uid}") UserBorrowDetail findUserBorrows(@PathVariable("uid") int uid){ return service.getUserBorrowDetailByUid(uid); } + + //备选方案,这里直接返回空列表了 + //注意参数和返回值要和上面的一致 + UserBorrowDetail onError(int uid){ + System.out.println("执行补救措施"); + return new UserBorrowDetail(null, Collections.emptyList()); + } }