针对hibernate-validator 进行增强,站在巨人的肩膀上,让程序员对数据校验更加得心应手
使用请仔细阅读官方文档:fluent-validator
<dependency> <groupId>com.github.homeant</groupId> <artifactId>spring-boot-starter-fluent-validator</artifactId> <version>1.0.0.M1</version> </dependency>//此处FluentValid注解 public User install(@FluentValid(UserValidator.class) User user){ ... }上述** @FluentValid(UserValidator.class) 中的UserValidator.class**交给spring进行管理
Component pubcli class UserValidator extends Validator{ } validator: enable: true ## default true@Bean public IMessageService messageService() { return new IMessageService() { //jdbc or rpc @Override public List<MessageResource> getAllMessage(Object... args) { return null; } }; }当前版本如果对controller 进行处理需要自己定义**@RestControllerAdvice**,,异常类为com.github.homeant.validator.core.exception.ValidateFailException
@RestControllerAdvice public class ExceptionHandle { @ExceptionHandler(value = ValidateFailException.class) public ResponseEntity<Object> Handle(ValidateFailException exception){ List<Map<String, String>> fields = new ArrayList<>(); if(null!=exception.getErrors() && exception.getErrors().size()>0) { for (int i = 0; i < exception.getErrors().size(); i++) { ValidationError r = exception.getErrors().get(i); Map<String, String> field = new HashMap<>(); field.put("field",r.getField()); field.put("errorMsg",r.getErrorMsg()); fields.add(field); } } map.put("message",exception.getMessage()); map.put("state",416); map.put("fields", fields); return ResponseEntity.status(416).body(map); } }在非controller中使用,请自行捕获异常,并处理 develop
controller 层校验,将错误信息装载到org.springframework.validation.BindingResult中,和spring validator 使用方式统一