Spring Boot使用Hibernate Validator的简单应用记录

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的最简单应用记录,描述框架提供的功能而已,根据不同的业务需求还可以进行拓展,详情请参考官方文档

你可能感兴趣的:(Spring Boot使用Hibernate Validator的简单应用记录)