数据校验工具类

Posted lyon91

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据校验工具类相关的知识,希望对你有一定的参考价值。

思路,

 1、传入要校验的属性以及如果校验不过提示信息

 2、如果数据校验不过返回json 格式信息。

 3、不满足条件抛出自定义异常,然后在异常处理器中获取信息,return 信息

 

一、自定义异常

public class LyonException extends RuntimeException{
    private static final long serialVersionUID = 1L;
    
    private String msg;
    private int code = 500;
    code 默认是500
    public LyonException(String msg) {
        super(msg);
        this.msg = msg;
    }

    public LyonException(String msg, int code) {
       super(msg);
       this.msg = msg;
       this.code = code;
   }

 

 

二、异常处理器

/**
 * 异常处理器
 * @author    lyon
 * @date    2018年3月2日
 */
@RestControllerAdvice
public class LyonExceptionHandler {

    
    @ExceptionHandler(LyonException.class)
    public R handlerLyonException(LyonException e){
        R r = new R();
        r.put("code", e.getCode());
        r.put("msg", e.getMessage());
        return r;
    }
}

 

三、返回值R

技术分享图片
public class R extends HashMap<String, Object> {
    private static final long serialVersionUID = 1L;

    public R() {
        put("code", 0);
        put("msg", "操作成功");
    }

    public static R error() {
        return error(1, "操作失败");
    }

    public static R error(String msg) {
        return error(500, msg);
    }

    public static R error(int code, String msg) {
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    public static R ok(String msg) {
        R r = new R();
        r.put("msg", msg);
        return r;
    }
View Code

 

四、工具类

/**
 * 数据校验
 * @author    lyon
 * @date    2018年3月2日
 */
public abstract class Assert {

    /**
     * @param str 校验的字符串
     * @param msg 提示信息
     */
    public static void isBlank(String str,String msg){
        if(StringUtils.isBlank(str)){
            throw new LyonException(msg);
        }
    }
    
    public static void isNull(Object object, String message) {
        if (object == null) {
            throw new LyonException(message);
        }
    }
}

 

五、测试

    @GetMapping("/test")
    @ResponseBody
    public R hello(String name) {
        Assert.isBlank(name, "用户名不能为空");
        return R.ok();
    }

技术分享图片






以上是关于数据校验工具类的主要内容,如果未能解决你的问题,请参考以下文章

后端自定义RunTimeException工具类校验前端输入,使前端节约3000行代码

elasticsearch代码片段,及工具类SearchEsUtil.java

javaScript手机号码校验工具类PhoneUtils详解

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

java参数校验:ValidatorUtils校验框架工具类的使用

史上最全的开发工具类