Hibernate Validator在参数校验方便提供了统一的解决方案。此文简单说明spring boot集成hibernate validator的方法。
spring boot 本身已经加入了validator的maven依赖,所以不用再去重复添加,直接就可以使用。本文通过java配置和注解相结合的方式实现校验。(java代码配置也是spring boot推荐的配置方法)
1、配置类
@Configuration
public class WebConfig {
//配置参数校验
@Bean
public Validator validator() {
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
.configure()
.addProperty("hibernate.validator.fail_fast", "true")
.buildValidatorFactory();
return validatorFactory.getValidator();
}
}
hibernate.validator.fail_fast
的值为true
时,校验结果只会返回第一个不符合条件参数的message
信息,后续参数不再继续校验。
2、校验参数配置
public class SuggestSubmitDto implements Serializable {
/**
* 类型
*/
@NotNull(message = "类型不能为空")
private SuggestType suggestType;
/**
* 主题
*/
@NotNull(message = "主题不能为空")
private String title;
/**
* 描述
*/
@NotNull(message = "描述不能为空")
private String description;
getter...
setter...
}
所有需要校验的参数加上对应的注解就行了,同时还可以对校验进行分组(具体方法参考官方文档)
3、Controller方法校验添加
@RequestMapping(value = "/submit", method = RequestMethod.POST)
public JsonResult submit(@Valid SuggestSubmitDto dto, String userId) {
suggestService.submit(dto, userId);
return JsonResult.instance();
}
通过@Valid
实现参数校验
在此仅做hibernate validator的最简单应用记录,描述框架提供的功能而已,根据不同的业务需求还可以进行拓展,详情请参考官方文档