add
This commit is contained in:
parent
85e40bf56d
commit
ca3efd0073
@ -8,6 +8,7 @@ import com.fanxb.exceptiontest.entity.exception.CustomBusinessException;
|
||||
import com.fanxb.exceptiontest.entity.vo.TestBody;
|
||||
import com.fanxb.exceptiontest.entity.vo.TestBody2;
|
||||
import com.fanxb.exceptiontest.entity.vo.TestBody3;
|
||||
import com.fanxb.exceptiontest.entity.vo.TestBody4;
|
||||
import org.hibernate.validator.constraints.Range;
|
||||
import org.springframework.validation.BindException;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -65,4 +66,12 @@ public class TestController {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义校验
|
||||
*/
|
||||
@PostMapping("/test6")
|
||||
public Result test6(@Validated @RequestBody TestBody4 testBody) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,26 @@
|
||||
package com.fanxb.exceptiontest.entity.validation;
|
||||
|
||||
import com.fanxb.exceptiontest.entity.validation.annotation.CustomCheck;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
|
||||
/**
|
||||
* @author fanxb
|
||||
* @date 2021-10-08 23:27
|
||||
*/
|
||||
public class CustomCheckValidator implements ConstraintValidator<CustomCheck, String> {
|
||||
private String param1;
|
||||
|
||||
@Override
|
||||
public void initialize(CustomCheck constraintAnnotation) {
|
||||
//在此获取校验参数
|
||||
param1 = constraintAnnotation.param1();
|
||||
ConstraintValidator.super.initialize(constraintAnnotation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
|
||||
return param1 != null && param1.equals(s);
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.fanxb.exceptiontest.entity.validation.annotation;
|
||||
|
||||
import com.fanxb.exceptiontest.entity.validation.CustomCheckValidator;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* @author fanxb
|
||||
* @date 2021-10-08-23:22
|
||||
*/
|
||||
|
||||
@Target({ElementType.FIELD}) //作用于字段
|
||||
@Retention(RetentionPolicy.RUNTIME)//生命周期
|
||||
@Constraint(validatedBy = CustomCheckValidator.class)//校验逻辑实现类
|
||||
public @interface CustomCheck {
|
||||
|
||||
String message() default "自定义校验默认错误提示";
|
||||
|
||||
/**
|
||||
* 自定义参数,可传递到校验实现类CustomCheckValidator中
|
||||
*/
|
||||
String param1() default "";
|
||||
|
||||
Class<?>[] groups() default {}; //用于分组校验
|
||||
|
||||
Class<? extends Payload>[] payload() default {};
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.fanxb.exceptiontest.entity.vo;
|
||||
|
||||
import com.fanxb.exceptiontest.entity.consistant.Insert;
|
||||
import com.fanxb.exceptiontest.entity.consistant.Update;
|
||||
import com.fanxb.exceptiontest.entity.validation.annotation.CustomCheck;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* @author fanxb
|
||||
* @date 2021-09-28-下午4:29
|
||||
*/
|
||||
@Data
|
||||
public class TestBody4 {
|
||||
@CustomCheck(message = "此参数固定为fff", param1 = "fff")
|
||||
private String param1;
|
||||
@CustomCheck(message = "此参数固定为ggg", param1 = "ggg")
|
||||
private String param2;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user