java 枚举值校验_SpringBoot使用validation-api实现对枚举类参数校验的方法

本文介绍了如何在SpringBoot中利用validation-api框架进行参数校验,特别是针对枚举类型的参数。通过自定义注解和校验器,实现了对枚举值存在的校验,减少了代码冗余。文章提供了具体的实现步骤,包括接口、注解、校验器的定义和使用示例。
摘要由CSDN通过智能技术生成

前言

之前写了一个博客是关于使用SpringBoot使用validation-api实现参数校验,当时使用的注解都是validation-api自带的注解只能完成对空值、长度等简单的校验,在我们日常的使用当中会遇到对参数是否在枚举值类的校验,针对这种情况我们怎么来实现呢?

SpringBoot使用validation-api实现参数校验可参考我的博客:SpringBoot使用validation-api实现参数校验

正文

SpringBoot使用validation-api实现对枚举类参数校验

ValidationApi框架就是用来解决参数校验中代码冗余问题,ValidationApi框架提供一些注解用来帮助我们对请求参数进行校验。

Maven依赖

javax.validation

validation-api

2.0.1.Final

org.apache.commons

commons-lang3

3.3.2

org.projectlombok

lombok

1.18.2

true

com.github.xiaoymin

knife4j-spring-boot-starter

2.0.4

EnumValidate:用于对枚举校验的接口

/**

* 用于实现枚举类的校验

*/

public interface EnumValidate {

/**

* 校验枚举值是否存在

*/

boolean existValidate(T value);

}

ActionTypeEnumValid:用于对枚举类校验的自定义注解

@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Constraint(validatedBy = {ActionTypeEnumValidator.class})

@Documented

public @interface ActionTypeEnumValid {

String message() default "";

Class

ActionTypeEnumValidator:枚举校验器

/**

* 用于校验ActionTypeEnumValidator

*/

public class ActionTypeEnumValidator implements ConstraintValidator {

private Class extends Enum> enumClass;

@Override

public void initialize(ActionTypeEnumValid actionTypeEnumValid) {

enumClass = actionTypeEnumValid.enumClass();

}<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值