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.TestBody;
|
||||||
import com.fanxb.exceptiontest.entity.vo.TestBody2;
|
import com.fanxb.exceptiontest.entity.vo.TestBody2;
|
||||||
import com.fanxb.exceptiontest.entity.vo.TestBody3;
|
import com.fanxb.exceptiontest.entity.vo.TestBody3;
|
||||||
|
import com.fanxb.exceptiontest.entity.vo.TestBody4;
|
||||||
import org.hibernate.validator.constraints.Range;
|
import org.hibernate.validator.constraints.Range;
|
||||||
import org.springframework.validation.BindException;
|
import org.springframework.validation.BindException;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -65,4 +66,12 @@ public class TestController {
|
|||||||
return null;
|
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