在代码中没有看到使用hibernate-validator里面的内容呀
课程例讲解的很清楚了,在没有引入hibernate-validator之前,我们使用判空的方式来验证UserModel。
//如果需要的信息为空,则抛出异常 if (StringUtils.isEmpty(userModel.getName()) || userModel.getAge() == null || userModel.getGender() == null || StringUtils.isEmpty(userModel.getTelephone()) || StringUtils.isEmpty(userModel.getEncrptPassword())) { throw new BusinessException(EnumBussinessError.PARAMETER_VALIDATION_ERROR); }
hibernate-validator是一个验证框架,可以大大简化验证的过程,增加了验证的细节
首先我们对UserModel进行了改造
@NotBlank(message = "用户名不能为空") private String name; @NotNull(message = "性别不能为空") private Byte gender; @NotNull(message = "年龄不能为空") @Min(value = 0, message = "年龄不能小于0") @Max(value = 150, message = "年龄不能大于150") private Integer age; @NotBlank(message = "手机号不能为空") private String telephone; private String registreMode; private String thirdPartyId; @NotBlank(message = "密码不能为空") private String encrptPassword;
其次我们建立其了两个类,一个是ValidatorUtil,用来验证添加验证规则的UserModel;另一个类ValidatorResult,用来保存验证后的信息。
验证代码就简化为:
ValidatorResult validatorResult = validatorUtil.validate(userModel); if (validatorResult.getHasError()) { throw new BusinessException(EnumBussinessError.PARAMETER_VALIDATION_ERROR,validatorResult.getErrorMsg()); }
可以参考如下文章: