推广

springboot 统一返回数据格式和异常处理

iseeyu2年前 (2024-02-21)推广135

image

正常返回的数据

image

统一返回数据格式

/**
 * 封装服务端响应到客户端的数据
 */
public class JsonResult {
    /**
     * 响应状态码
     */
    private Integer state=1;
    /**
     * 状态码对应的信息
     */
    private String message;
    /**
     * 响应的数据
     * 这里也可以使用泛型 private T data 在类上也加上
     */
    private Object data;

    public void setState(Integer state) {
        this.state = state;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public void setData(Object data) {
        this.data = data;
    }
      public JsonResult() {

    }
//要么用set方法来封装数据要么用构造方法
    public JsonResult(String message) {
        this.message=message;
    }

    public JsonResult(Object data) {
        this.data = data;
    }

    public JsonResult(Throwable e) {
        this.state=0;
        this.message=e.getMessage();
    }
}

统一的异常处理全局异常捕获

用@RestControllerAdvice加@ExceptionHandler注解来实现

@ExceptionHandler也可以直接放在某个controller里面表示处理这个controller中的这个类型的异常,如果全局和某个controller里都实现同一个异常的处理会优先使用controller里面的

创建一个统一处理异常的类

//拦截全局的异常
@RestControllerAdvice
public class GlobalExceptionHandler {
    //用来处理日志的
    private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
    //用来处理该类型的异常
    @ExceptionHandler(ArithmeticException.class)
    public JsonResult doHandlerArithmeticException(ArithmeticException e) {
        e.printStackTrace();
        log.info("exception {}",e.getMessage());
        return new JsonResult(e);//封装异常结果
    }

}

注意:@RestControllerAdvice只能拦截controller层的异常不会拦截Interceptor的异常

优点:把异常统一处理,减少代码的重复编写,提高了可维护性

缺点:只能处理controller层的异常,对于Interceptor层的异常,spring内部的异常无能为力

使用:

@RestController
public class ArithmeticController {
    @RequestMapping("do/{n}/{n1}")
    public JsonResult handle01(@PathVariable Integer n, @PathVariable Integer n1) {
        Integer res = n/n1;
        JsonResult jsonResult = new JsonResult(res);
        jsonResult.setMessage("正确"+res);
        return jsonResult;
    }
}

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/57098.html

相关文章

极速推广为什么没有曝光,极速贷app(极速版软件赚钱)

极速推广为什么没有曝光,极速贷app(极速版软件赚钱)

淘宝极速推广就是为了提高商品曝光而出现的,商家在操作后台,选择好想要推广的商品,然后选择好推广模式就可以开始推广了。...

电脑硬件有哪些?组装一台电脑需要哪些配件详解

电脑硬件有哪些?组装一台电脑需要哪些配件详解

组装电脑可以按照自己的预算和用途来搭配电脑硬件,用户可以个人自由的选择不同硬件、不同,自由度更高、性价比更为出色。那么电脑硬件有哪些?下面装机之家分享一下组装一台电脑需要哪些配件详解,本文是电脑硬件基础,老鸟飞。 组装电脑硬件 组装一台电脑需要哪些配件? 主机...

郑州超好玩的10大景区,好玩的全部在这里,一辈子必去的地方

郑州是国家历史之乡 ,是中华文明关键发源地之一,为中华人文始祖轩辕黄帝的故居 ,在历史上曾五次为都、八代为州,是“我国八大古都” 之一和世界史现代都市同盟组员 。全省有全球历史文化遗产2项15处,全国各地关键文化遗产保护企业38处43项 ,有着黄帝故里、商城遗址、天地之中等...

分享企业在网站推广中有什么细节需要注意呢。

分享企业在网站推广中有什么细节需要注意呢。

在的过程中,一定要把推广的技巧全部掌握清楚,那么,我们需要知道,网站推广中还有哪些细节需要注意?下面来听听云裂变小编的分享吧! 1.选择所需的关键词 对seo而言,最好的关键词就是适合自己的企业,这是对seo推广最重要的一步。可从相关网站的内容中查找相关文本;可能从地区,此类模式的长尾...

三个步骤在美柚平台发帖顶贴 日引流100高质量宝妈人群。

三个步骤在美柚平台发帖顶贴 日引流100高质量宝妈人群。

宝妈流量一直是互联网人的竞争很激烈的一种流量。 在有流量的地方,就有江湖。因此,想要引流宝妈粉。就应该往宝**平台上跑,美柚APP这平台虽然引流不如刚开始了,但是撑过还是不错的,熬死竞争对手就是胜利。 在此APP上混搭的大多数人都是年轻女性,其中大多数是“孕妇”。因此,上述人们对主题的关注...

2022/02/15《上海市引进人才申办本市常住户口》公示名单

2022/02/15《上海市引进人才申办本市常住户口》公示名单

《上海市引进人才申办本市常住户口》公示名单 发布时间:2022-02-15 《上海市引进人才申办本市常住户口》公示名单 以下人员已经我局审核同意办理本市常住户口,现予公示。公示时间自2022-02-15至2022-02-19,共5天。 监督电话:12333 上海市人力资源和...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片