@HystrixCommand 注解异常处理

xiaoxiao2021-03-01  18

1. service 代码

package com.example.server1; import org.springframework.stereotype.Service; import com.netflix.hystrix.HystrixCommandGroupKey; import com.netflix.hystrix.HystrixCommandKey; import com.netflix.hystrix.HystrixThreadPoolKey; import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; import com.netflix.hystrix.HystrixCommand.Setter; @Service public class annotationHelloWorld { private final String name; public annotationHelloWorld() { this.name = "Worlk"; } @HystrixCommand(fallbackMethod="getFallback",commandKey="getUserById",groupKey="UserGroup", threadPoolKey="getUserByIdThread") protected String getUserById() throws Exception { int i=1/0; return "Hello " + name + "!"; } protected String getFallback(Throwable e) { System.out.println(e.getMessage()); e.printStackTrace(); return "faild"; } }

2. Controller 代码

package com.example.server1; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController public class annotationHelloWorldController { @Autowired annotationHelloWorld ahw ; @RequestMapping(value="/annotationhello",method=RequestMethod.GET) public String commandhello () throws Exception { return ahw.getUserById(); } }

3. 浏览器访问获得降级处理的结果

4. 控制台日志输出

5. 修改 service 中 @HystrixCommand 注解忽悠 ArithmeticException 异常。忽略ArithmeticException 异常后,异常将会抛给页面。

上面标红线的代码是忽略指定异常。

 

6. 浏览器访问结果

7.控制台日志输出

转载请注明原文地址: https://www.6miu.com/read-3350144.html

最新回复(0)