SpringBoot:统一异常、数据校验处理

本文介绍了如何在SpringBoot应用中实现JSR303后端数据校验,包括分组校验和自定义校验注解的创建,同时讲解了统一异常处理的实现,包括状态枚举类和异常处理类的设计,适用于提升后端接口的健壮性。
摘要由CSDN通过智能技术生成

springboot统一异常处理,JSR303后端校验,分组校验,自定义校验注解实战编写


前言

本文基于springBoot构建后端校验功能,编写统一异常处理功能


一、JSR303后端校验

1.引入pom依赖

<!-- JSR303校验-->
        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.13.Final</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>3.0.0</version>
        </dependency>

2.创建分组接口

提示:分组标识作用,需要几个分组创几个

package com.bgg.common.vaild;

/**
 * 校验新增分组接口,只做标识用
 * @author lmc
 * @date 2021/3/22
 * */
public interface AddGroup {
   
}
package com.bgg.common.vaild;
/**
 * 校验新增分组接口,只做标识用
 * @author lmc
 * @date 2021/3/22
 * */
public interface UpdateGroup {
   
}
package com.bgg.common.vaild;

/**
 * 校验修改状态分组,用于标识
 */
public interface UpdateStatusGroup {
   
}

3.创建自定义校验注解

提示:根据自己项目实际需求,若无特殊校验可以不写

3.1创建自定义注解

提示:需要指定校验器3.2,和默认异常消息路径3.3

package com.bgg.common.vaild;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 自定义注解
 */
@Documented
@Constraint(validatedBy = {
   ListValueConstraintValidator.class}) //指定校验器
@Target({
   ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ListValue {
   
    String message() default "{com.bgg.common.vaild.ListValue.message}";

    Class<?>[] groups() default {
   };

    Class<? extends Payload>[] payload() default {
   };

    int[] vals() default {
   };
}

3.2创建校验器

package com.bgg.common.vaild;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.HashSet
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值