如果接收的实体结构是这样的,那么@Validated是校验不了对象内的@NotBlank标签
@Data
@Schema(title = "门店基础信息接收")
public class StoreBasicInfoResq {
@Schema(title = "门店基础信息接收-修改后",required = true)
private StoreBasicInfoAfterUpdate storeBasicInfoAfterUpdate;
@Schema(title = "门店基础信息接收-未修改前",required = true)
private StoreBasicInfoBeforeUpdate storeBasicInfoBeforeUpdate;
}
采用注入的方式,校验@NotBlank标签
@Resource
private LocalValidatorFactoryBean validator;
private <T> void validated(T t){
Set<ConstraintViolation<T>> validate = validator.validate(t);
for (ConstraintViolation<T> constraintViolation : validate) {
throw new BigException(constraintViolation.getMessage());
}
}
@NotBlank,@NotEmpty,@NotNull,三个标签的区别
@NotBlank:用于字符串,不可用于Integer等,为空和空字符串会报错
@NotEmpty:常用于List,Map等的判空
@NotNull:常用于Integer等的判空