Просмотр исходного кода

user 引入 spring-cloud-starter-netflix-hystrix:2.2.10.RELEASE 依赖, 由于自 SpringCloud 2020 起删除了 Hystrix 依赖, 因此需要指定版本号

reghao 8 месяцев назад
Родитель
Сommit
dcdcd8e042

+ 5 - 0
user/user-service/pom.xml

@@ -88,6 +88,11 @@
             <groupId>org.springframework.cloud</groupId>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+            <version>2.2.10.RELEASE</version>
+        </dependency>
 
 
         <dependency>
         <dependency>
             <groupId>org.springdoc</groupId>
             <groupId>org.springdoc</groupId>

+ 2 - 0
user/user-service/src/main/java/cn/reghao/tnb/user/app/UserApplication.java

@@ -2,10 +2,12 @@ package cn.reghao.tnb.user.app;
 
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.hystrix.EnableHystrix;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan;
 
 
 @SpringBootApplication
 @SpringBootApplication
 @ComponentScan({"cn.reghao.tnb.user", "cn.reghao.tnb.common"})
 @ComponentScan({"cn.reghao.tnb.user", "cn.reghao.tnb.common"})
+@EnableHystrix
 public class UserApplication {
 public class UserApplication {
     public static void main(String[] args) {
     public static void main(String[] args) {
         SpringApplication.run(UserApplication.class, args);
         SpringApplication.run(UserApplication.class, args);

+ 6 - 0
user/user-service/src/main/java/cn/reghao/tnb/user/app/controller/UserWalletController.java

@@ -9,6 +9,7 @@ import cn.reghao.tnb.user.app.model.dto.WalletDto;
 import cn.reghao.tnb.user.app.model.po.Wallet;
 import cn.reghao.tnb.user.app.model.po.Wallet;
 import cn.reghao.tnb.user.app.model.vo.BillRecord;
 import cn.reghao.tnb.user.app.model.vo.BillRecord;
 import cn.reghao.tnb.user.app.service.WalletService;
 import cn.reghao.tnb.user.app.service.WalletService;
+import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
@@ -45,12 +46,17 @@ public class UserWalletController {
     @Operation(summary = "获取钱包账单", description = "N")
     @Operation(summary = "获取钱包账单", description = "N")
     @AuthUser
     @AuthUser
     @GetMapping(value = "/bill", produces = MediaType.APPLICATION_JSON_VALUE)
     @GetMapping(value = "/bill", produces = MediaType.APPLICATION_JSON_VALUE)
+    @HystrixCommand(fallbackMethod = "getWalletBillHystrix")
     public String getWalletBill() {
     public String getWalletBill() {
         long loginUser = UserContext.getUser();
         long loginUser = UserContext.getUser();
         List<BillRecord> list = walletService.getWalletBill(loginUser);
         List<BillRecord> list = walletService.getWalletBill(loginUser);
         return WebResult.success(list);
         return WebResult.success(list);
     }
     }
 
 
+    public String getWalletBillHystrix(){
+        return WebResult.failWithMsg("hystrix fallback");
+    }
+
     @Operation(summary = "向钱包充值", description = "N")
     @Operation(summary = "向钱包充值", description = "N")
     @AuthUser
     @AuthUser
     @PostMapping("/charge")
     @PostMapping("/charge")