美文网首页
@HystrixCommand 注解异常处理

@HystrixCommand 注解异常处理

作者: 天高云淡623 | 来源:发表于2020-02-10 11:37 被阅读0次

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://blog.csdn.net/lixiaxin200319/article/details/81096737

相关文章

网友评论

      本文标题:@HystrixCommand 注解异常处理

      本文链接:https://www.haomeiwen.com/subject/ifhaxhtx.html