1. 程式人生 > >數據校驗工具類

數據校驗工具類

log 滿足 工具類 lose rac super string throw class

思路,

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();
    }

技術分享圖片

數據校驗工具類