有時我們需要手動校驗pojo參數,而不在spring的容器內通過入參這種方式
同時希望能使用jsr-303 ,這時我們可以使用hibernate-validator 手動校驗,並且hibernate-validator 就是jsr-303的實現者
pojo
public class SettleInfo {
@NotNull
private Integer id;
private String name;
private Date birth;
}
校驗代碼:
import com.jpush.model.SettleInfo;
import org.apache.commons.collections4.CollectionUtils;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.groups.Default;
import java.util.Set;
public class Client {
public static void main(String[] args) {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
SettleInfo settleInfo = new SettleInfo();
Set<ConstraintViolation<SettleInfo>> validateSet = validator.validate(settleInfo, Default.class);
if (CollectionUtils.isNotEmpty(validateSet)) {
for (ConstraintViolation<SettleInfo> constraintViolation : validateSet) {
System.out.println(constraintViolation.getPropertyPath().toString()+"==="+constraintViolation.getMessage());
}
}
}
}
結果,可以發現校驗正常生效