广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot怎么使用validation做参数校验
  • 169
分享到

SpringBoot怎么使用validation做参数校验

2023-06-30 11:06:52 169人浏览 八月长安
摘要

这篇文章主要介绍了SpringBoot怎么使用validation做参数校验的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springBoot怎么使用validation做参数校验文章都会有所收获,下面我们一起

这篇文章主要介绍了SpringBoot怎么使用validation做参数校验的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springBoot怎么使用validation做参数校验文章都会有所收获,下面我们一起来看看吧。

    1.添加依赖

    直接添加 hibernate-validator

    <dependency>            <groupId>org.hibernate.validator</groupId>            <artifactId>hibernate-validator</artifactId>            <version>6.0.2.Final</version>        </dependency>

    添加spring-boot-starter-validation

    <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-validation</artifactId>            <version>1.4.0.RELEASE</version>        </dependency>

    添加spring-boot-starter-WEB

    <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>

    2. 配置文件

    如果想要设置fail_fast属性的话,true表示有一个参数出错即返回,默认的时检验所有的参数,那么必须要有配置文件

    import org.hibernate.validator.HibernateValidator;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.validation.beanvalidation.MethodValidationPostProcessor;import org.springframework.validation.beanvalidation.SpringValidatorAdapter;import org.springframework.web.servlet.config.annotation.WebmvcConfigurerAdapter;import javax.validation.Validation;import javax.validation.Validator;import javax.validation.ValidatorFactory;@Configurationpublic class ValidatorConfig extends WebMvcConfigurerAdapter {    @Bean    public Validator validator() {        ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)                .configure()                // 将fail_fast设置为true即可,如果想验证全部,则设置为false或者取消配置即可                .failFast(true)//                .addProperty("hibernate.validator.fail_fast", "true")                .buildValidatorFactory();        return validatorFactory.getValidator();    }        @Bean    public MethodValidationPostProcessor methodValidationPostProcessor() {        MethodValidationPostProcessor methodValidationPostProcessor = new MethodValidationPostProcessor();        methodValidationPostProcessor.setValidator(validator());        return methodValidationPostProcessor;    }    @Override    public org.springframework.validation.Validator getValidator() {        return new SpringValidatorAdapter(validator());    }}

    其中methodValidationPostProcessor是对requestParam起作用

    继承WebMvcConfigurerAdapter 并且重写getValidator()方法,是让spring的请求校验Validator使用我们上边的validator,让设置的failFast生效,具体可参考org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#mvcValidator方法

    3.统一异常处理

        @ExceptionHandler(BindException.class)    @ResponseBody    public WebResult validationErrorHandler(BindException ex) {        List<String> collect = ex.getBindingResult().getAllErrors()                .stream()                .map(ObjectError::getDefaultMessage)                .collect(Collectors.toList());        return new WebResult(Errors.INCORRECT_PARAM_FORMAT.getError(), StringUtils.join(collect, ";"));    }        @ExceptionHandler(MethodArgumentNotValidException.class)    @ResponseBody    public WebResult validationErrorHandler(MethodArgumentNotValidException ex) {        List<String> collect = ex.getBindingResult().getAllErrors()                .stream()                .map(ObjectError::getDefaultMessage)                .collect(Collectors.toList());        return new WebResult(Errors.INCORRECT_PARAM_FORMAT.getError(), StringUtils.join(collect, ";"));    }        @ExceptionHandler(ConstraintViolationException.class)    @ResponseBody    public WebResult validationErrorHandler(ConstraintViolationException ex) {        List<String> errorInformation = ex.getConstraintViolations()                .stream()                .map(ConstraintViolation::getMessage)                .collect(Collectors.toList());        return new WebResult(Errors.INCORRECT_PARAM_FORMAT.getError(),StringUtils.join(errorInformation, ";"));    }

    4.使用

    如果是@RequestParam这样直接写参数校验的话,在类上或者对应方法上加上Validated注解,如果是实体类接受的话,在参数中的实体前加上@Valid即可

    关于“SpringBoot怎么使用validation做参数校验”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“SpringBoot怎么使用validation做参数校验”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

    --结束END--

    本文标题: SpringBoot怎么使用validation做参数校验

    本文链接: https://www.lsjlt.com/news/328342.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • SpringBoot怎么使用validation做参数校验
      这篇文章主要介绍了SpringBoot怎么使用validation做参数校验的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot怎么使用validation做参数校验文章都会有所收获,下面我们一起...
      99+
      2023-06-30
    • SpringBoot使用validation做参数校验说明
      目录1.添加依赖直接添加 hibernate-validator添加spring-boot-starter-validation添加spring-boot-starter-...
      99+
      2022-11-13
    • SpringBoot使用validation做参数校验的实现步骤
      1.添加依赖 直接添加 hibernate-validator <dependency> <groupId>org.hibern...
      99+
      2022-11-12
    • SpringBoot集成Validation参数校验
      本文实例为大家分享了SpringBoot集成Validation参数校验的具体代码,供大家参考,具体内容如下 1、依赖 SpringBoot在web启动器中已经包含validator...
      99+
      2022-11-12
    • SpringBoot 中使用 Validation 校验参数的方法详解
      目录1. Validation 介绍1.1 Validation 注解1.2 @valid 和 @validated的区别2. SpringBoot 中使用 Validator 校验...
      99+
      2022-11-13
    • SpringBoot利用validation实现优雅的校验参数
      目录1、前言2、常用校验3、spring boot的数据自动校验功能3.1 引入依赖3.2 构建启动类3.3 创建需要被校验的实体类3.4 在Controller中校验数据3.5 统...
      99+
      2022-11-13
    • SpringBoot集成Validation参数校验的方法是什么
      这篇“SpringBoot集成Validation参数校验的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spri...
      99+
      2023-06-26
    • SpringBoot参数怎么校验
      本篇内容主要讲解“SpringBoot参数怎么校验”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot参数怎么校验”吧!使用传统方式的弊端public String&nb...
      99+
      2023-06-30
    • SpringBoot如何利用validation实现优雅的校验参数
      这篇“SpringBoot如何利用validation实现优雅的校验参数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spr...
      99+
      2023-07-02
    • 怎么使用Bean Validation解决业务中参数校验
      这篇文章将为大家详细讲解有关怎么使用Bean Validation解决业务中参数校验,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。叙述Bean Validation是一个通过配置注解来验证参数的框架,它包...
      99+
      2023-06-20
    • SpringBoot参数校验之@Valid怎么使用
      这篇文章主要介绍“SpringBoot参数校验之@Valid怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot参数校验之@Valid怎么使用”文章能帮助大家解决问题。依赖&l...
      99+
      2023-07-02
    • SpringBoot参数校验Validator框架怎么使用
      这篇“SpringBoot参数校验Validator框架怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringB...
      99+
      2023-07-02
    • SpringBoot怎么进行参数校验
      这篇文章主要讲解了“SpringBoot怎么进行参数校验”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么进行参数校验”吧!介绍在日常的接口开发中,为了防止非法参数对业务...
      99+
      2023-06-30
    • springboot参数格式怎么校验
      这篇文章主要介绍“springboot参数格式怎么校验”,在日常操作中,相信很多人在springboot参数格式怎么校验问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot参数格式怎么校验”的疑...
      99+
      2023-06-08
    • springboot 中怎么校验参数格式
      本篇文章给大家分享的是有关springboot 中怎么校验参数格式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。springboot 参数格式校验@Validated 字面意思...
      99+
      2023-06-20
    • 如何使用Bean Validation 解决业务中参数校验
      前言 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有点麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗长...
      99+
      2022-11-12
    • Springboot 如何使用BindingResult校验参数
      目录使用BindingResult校验参数1、创建一个参数对象2、controller控制层写参数接收的入口3、传入参数和控制台打印结果4、常用校验注解BindingResult 作...
      99+
      2022-11-13
    • Spring Validation怎么实现数据校验
      这篇文章主要讲解了“Spring Validation怎么实现数据校验”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Validation怎么实现数据校验”吧...
      99+
      2023-07-05
    • java使用Validation进行数据校验
      在开发中,我们经常遇到参数校验的需求,比如用户注册的时候,要校验用户名不能为空、用户名长度不超过20个字符、手机号是合法的手机号格式等等。如果使用普通方式,我们会把校验的代码和真正的业务处理逻辑耦合在一起,而且如果未来要新增一种校验逻辑也需...
      99+
      2023-09-01
      java spring
    • Springboot怎么使用filter对request body参数进行校验
      这篇文章主要为大家展示了“Springboot怎么使用filter对request body参数进行校验”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Springboot怎么使用fil...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作