美文网首页
Spring Boot使用Hibernate Validator

Spring Boot使用Hibernate Validator

作者: zpwd63 | 来源:发表于2018-09-05 17:03 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/pwzawftx.html