javax.validation在Spring Boot请求中使用方式

 更新时间:2025年11月13日 08:59:59   作者:IT 挑山工  
在Spring Boot中进行请求参数验证,可以通过引入`spring-boot-starter-validation`依赖,并在实体类和控制器中使用`javax.validation`注解来实现,配置包括引入依赖、在实体类中添加注解、在控制器方法中使用`@Valid`注解以及捕获异常并返回自定义错误消息

在Spring boot中对请求的参数做简单的验证

可以使用javax.validation注解。

需要做以下配置:

1. 在pom.xml配置

引入spring boot validation starter (这步比较容易遗漏,因为代码中没有对它的引用依赖,打包编译都不会报错)

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

2. 在需要请求的实体类中

使用javax.validation注解

import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

@Data
public class QueryVo {
    private String data;

    @NotEmpty(message = "Input can not be empty!")
    @NotNull(message = "Input can not be empty!")
    private String input;
}

3. 在对应的请求中使用@Valid 注解

    @ApiOperation(value = "查询")
    @RequestMapping(path = "/query", method = RequestMethod.POST)
    @ResponseBody
    public APIModel query(@Valid @RequestBody QueryVo query) throws Exception {
        return service.query(query);
    }

4. 捕获异常并组装返回消息格式

    @ExceptionHandler(value = BindException.class)
    public APIModel bindExceptionHandler(HttpServletRequest request, BindException e) {
        logger.error("Error found:", e);
        BindingResult bindingResult = e.getBindingResult();
        List<ObjectError> objectErrors = bindingResult.getAllErrors();
        ObjectError objectError = objectErrors.get(0);
        return APIModel.error(objectError.getDefaultMessage());
    }

5. 测试代码获取如下结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springcloud配置ssh的问题及解决方法

    springcloud配置ssh的问题及解决方法

    这篇文章主要介绍了springcloud配置ssh,本文给大家介绍在配置过程中遇到的问题及解决方法,通过结合实例给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Java源码解析CopyOnWriteArrayList的讲解

    Java源码解析CopyOnWriteArrayList的讲解

    今天小编就为大家分享一篇关于Java源码解析CopyOnWriteArrayList的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 关于IntelliJ IDEA 打包代码报错的问题

    关于IntelliJ IDEA 打包代码报错的问题

    这篇文章主要介绍了关于IntelliJ IDEA 打包代码报错的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Mybatis 返回值类型和参数传递的配置方法

    Mybatis 返回值类型和参数传递的配置方法

    在 MyBatis 中,返回值类型和参数传递是 Mapper 接口中至关重要的两个方面,正确理解和使用它们可以帮助我们高效、准确地进行数据库操作,接下来通过本文给大家介绍Mybatis 返回值类型和参数传递的配置方法,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • Java的并发编程之CyclicBarrier解析

    Java的并发编程之CyclicBarrier解析

    这篇文章主要介绍了Java的并发编程之CyclicBarrier解析,CyclicBarrier支持一个可选的Runnable命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次,需要的朋友可以参考下
    2023-11-11
  • SpringBoot3实现Gzip压缩优化的技术指南

    SpringBoot3实现Gzip压缩优化的技术指南

    随着 Web 应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用 Gzip 压缩 HTTP 响应,本文将介绍如何在 Spring Boot 3 中实现 Gzip 压缩优化,需要的朋友可以参考下
    2025-04-04
  • Spring Cloud Ribbon的使用原理解析

    Spring Cloud Ribbon的使用原理解析

    现在Java非常流行微服务,也就是所谓的面向服务开发,将一个项目拆分成了多个项目,其优点有很多,其中一个优点就是:将服务拆分成一个一个微服务后,我们很容易的来针对性的进行集群部署,这篇文章主要介绍了Spring Cloud Ribbon的使用详解,需要的朋友可以参考下
    2022-07-07
  • Java日常练习题,每天进步一点点(32)

    Java日常练习题,每天进步一点点(32)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • RabbitMQ的基础知识

    RabbitMQ的基础知识

    本文详细介绍了RabbitMQ的基础知识,通过本文,我们可以了解到MQ工作原理、交换机等相关知识,有需要的朋友可以参考一下
    2021-08-08
  • SpringBoot启动过程的实现

    SpringBoot启动过程的实现

    这篇文章主要介绍了SpringBoot启动过程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论