增加执行校验前的验证:不含验证器的实体类直接跳过

This commit is contained in:
2025-05-13 14:49:02 +08:00
parent 7b140a9015
commit b5c2b36e1a

View File

@@ -16,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -86,17 +84,19 @@ public class ConfigControllerV1 extends BaseController {
MethodParameter methodParameter = new MethodParameter(method, 1);
// 执行校验
try {
BindingResult bindingResult = new BeanPropertyBindingResult(newConfig, clazz.getSimpleName());
validator.validate(newConfig, bindingResult);
if (bindingResult.hasErrors()) {
throw new MethodArgumentNotValidException(methodParameter, bindingResult);
if (validator.supports(clazz)) {
try {
BindingResult bindingResult = new BeanPropertyBindingResult(newConfig, clazz.getSimpleName());
validator.validate(newConfig, bindingResult);
if (bindingResult.hasErrors()) {
throw new MethodArgumentNotValidException(methodParameter, bindingResult);
}
}
catch (UnexpectedTypeException e) {
// 对指定类型未找到 validator忽略之
log.debug("Cannot find a validator for {}", clazz.getName());
}
}
catch (UnexpectedTypeException e) {
// 对指定类型未找到 validator忽略之
log.debug("Cannot find a validator for {}", clazz.getName());
}
T oldConfig = configService.getConfig(clazz);