SpringBoot统一返回值

 

 



//basePackages:设置统一拦截基础包名
@RestControllerAdvice(basePackages = {"com.wzx.controller"})
public class MyAdviceBody implements ResponseBodyAdvice {
    @Override
    public boolean supports(MethodParameter returnType, Class converterType) {

        //这个方法是拦截支持,可以写如哪些是要进行拦截,那些不进行拦截
        return true;
    }
    @ExceptionHandler(value = Exception.class)
    public Object defaultErrorHandler(HttpServletRequest req, Exception ex) {

        HttpResponse<Object> httpResponse = new HttpResponse<>();
        httpResponse.setCode(1);
        httpResponse.setMessage(ex.getMessage());
        return httpResponse;

    }
    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
        HttpResponse<Object> httpResponse = new HttpResponse<>();
        String message = StrUtil.EMPTY;
        httpResponse.setCode(0);
        httpResponse.setMessage(message);
        httpResponse.setData(body);
        if (selectedConverterType == StringHttpMessageConverter.class) {
            return JSONUtil.toJsonStr(httpResponse);
        } else {
            return httpResponse;
        }

    }
}
@Data
//例子
//code 0 message 成功 data ok
//code 1 message 运行错误 data null
public class HttpResponse<T> implements Serializable {

    //返回码(公司拟定的)  0代表正常 非零代表错误
    private int code;
    //返回信息,错误信息    0成功  非零 具体错误信息
    private String message;

    private T data;
}

 


@RestController
public class Demo {
    @GetMapping("/test")
    public String test1(){
        return "ok";
    }

    @GetMapping("test2")
    public List<Integer> test2(){
        ArrayList<Integer> integers = CollUtil.newArrayList(1, 2, 3, 4, 5, 6, 7);
        return integers;
    }

    @GetMapping("/tes3t")
    public String test3(){
        int a=0;
        int n=8/a;
        return "ok";
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值