• 数据校验工具类


    思路,

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

  • 相关阅读:
    TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用
    Redis阻塞诊断基础
    MySQL分区表
    Redis 主从复制
    Redis安全以及备份还原
    Redis物理文件结构
    Redis的Errorlog或者启动日志(错误日志)的配置
    Redis 编译安装
    MySQL自增列锁模式 innodb_autoinc_lock_mode不同参数下性能测试
    SQL Server并发操作单个表时发生在page页面级的死锁
  • 原文地址:https://www.cnblogs.com/lyon91/p/8492355.html
Copyright © 2020-2023  润新知