1、环境
SpringBoot 2.2.2.RELEASE
依赖validation-api
(这里只是引入该功能的依赖)
< dependency>
< groupId> javax.validation</ groupId>
< artifactId> validation-api</ artifactId>
< version> 2.0.1.Final</ version>
</ dependency>
2、编写一个自定义的检验注解
编写一个@interface
的类,我这里用ValidValue作为示例。
下面三个是JSR303
中规定必须有的
String message ( ) default "The specified value must be submitted" ;
Class< ? > [ ] groups ( ) default {
} ;
Class< ? extends Payload > [ ] payload ( ) default {
} ;
设定规则int[] vals() default {};
,就是你想要用来校验的规则。这里表示你输入的数字必须满足在该数组中。
完整例子如下(如果你不知道类上面的注解用那些,你可以随便点进去一个检验注解复制过去 )
在这里面的ValidValueConstraintValidator
校验器(下面说),是需要和你的校验注解绑定的
@Documented
@Constraint (
validatedBy = {
ValidValueConstraintValidator. class }
)
@Target ( {
ElementType. METHOD, ElementType. FIELD, ElementType. ANNOTATION_TYPE, ElementType. CONSTRUCTOR