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. 测试代码获取如下结果

总结

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

相关文章

  • Java数据结构学习之栈和队列

    Java数据结构学习之栈和队列

    这篇文章主要介绍了Java数据结构学习之栈和队列,文中有非常详细的代码示例,对正在学习java的小伙伴们有一定的帮助,需要的朋友可以参考下
    2021-05-05
  • 轻松学会使用JavaMail API发送邮件

    轻松学会使用JavaMail API发送邮件

    想要轻松学会使用JavaMail API发送邮件吗?本指南将带你快速掌握这一技能,让你能够轻松发送电子邮件,无论是个人还是工作需求,跟着我们的步骤,很快你就可以在Java应用程序中自如地处理邮件通信了!
    2023-12-12
  • Java Socket聊天室编程(一)之利用socket实现聊天之消息推送

    Java Socket聊天室编程(一)之利用socket实现聊天之消息推送

    这篇文章主要介绍了Java Socket聊天室编程(一)之利用socket实现聊天之消息推送的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • SpringBoot 整合RabbitMq 自定义消息监听容器来实现消息批量处理

    SpringBoot 整合RabbitMq 自定义消息监听容器来实现消息批量处理

    Spring Boot中提供了默认的监听器容器,但是有时候我们需要自定义监听器容器,来满足一些特殊的需求,比如批量获取数据,这篇文章主要介绍了SpringBoot 整合RabbitMq 自定义消息监听容器来实现消息批量处理,需要的朋友可以参考下
    2023-04-04
  • 解决springboot无法注入JpaRepository的问题

    解决springboot无法注入JpaRepository的问题

    这篇文章主要介绍了解决springboot无法注入JpaRepository的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Map与JavaBean相互转换的工具类 

    Map与JavaBean相互转换的工具类 

    这篇文章主要介绍了Map与JavaBean相互转换的工具类,在做导入的时候,遇到了需要将map对象转化 成javabean的问题,也就是说,不清楚javabean的内部字段排列,只知道map的 key代表javabean的字段名,value代表值,需要的朋友可以参考下
    2022-02-02
  • Java实现断点续传功能的示例代码

    Java实现断点续传功能的示例代码

    这篇文章主要为大家详细介绍了如何利用Java语言实现网络资源的断点续传功能,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解一下
    2022-10-10
  • java数据库唯一id生成工具类

    java数据库唯一id生成工具类

    这篇文章主要为大家详细介绍了java数据库唯一id生成工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Java五子棋简单实现代码举例

    Java五子棋简单实现代码举例

    Java五子棋游戏是一种经典的两人对战棋类游戏,它基于简单的规则,即任何一方的棋子在棋盘上形成连续的五个,无论是横、竖还是斜线,都将获胜,这篇文章主要介绍了Java五子棋实现的相关资料,需要的朋友可以参考下
    2024-10-10
  • Java ArrayDeque使用方法详解

    Java ArrayDeque使用方法详解

    这篇文章主要为大家详细介绍了Java ArrayDeque的使用方法,感兴趣的小伙伴们可以参考一下
    2016-03-03

最新评论