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

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.web.bind.annotation.ResponseBody;
import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
@@ -86,17 +84,19 @@ public class ConfigControllerV1 extends BaseController {
MethodParameter methodParameter = new MethodParameter(method, 1); MethodParameter methodParameter = new MethodParameter(method, 1);
// 执行校验 // 执行校验
try { if (validator.supports(clazz)) {
BindingResult bindingResult = new BeanPropertyBindingResult(newConfig, clazz.getSimpleName()); try {
validator.validate(newConfig, bindingResult); BindingResult bindingResult = new BeanPropertyBindingResult(newConfig, clazz.getSimpleName());
validator.validate(newConfig, bindingResult);
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
throw new MethodArgumentNotValidException(methodParameter, bindingResult); 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); T oldConfig = configService.getConfig(clazz);