手工触发DTO校验
使用Spring Boot架构,通常会在DTO上做NotBlank,NotNull,NotEmpty校验,然后再接口处加@Valid注解触发校验。但是有些情况,我们希望编程方式触发校验。实现代码如下:
DTO中增加Save或Update类接口,并维护group属性
注入javax.validation.Validator对象,然后再调用其api
```java
@Autowired
private javax.validation.Validator globalValidator;
/**省略*/
// 针对DTO上面的注解校验
Set<ConstraintViolation<TransactionAmortize>> validate = globalValidator.validate(item, TransactionAmortize.Save.class);
if (!validate.isEmpty()) {
for (ConstraintViolation<TransactionAmortize> userDTOConstraintViolation : validate) {
// DTO为空校验
errorDesc.append(userDTOConstraintViolation.getMessage()).append(";");
}
}
/**省略*/```
参考:
[1]: https://segmentfault.com/a/1190000023471742#item-2-9