SpringBoot使用@valid进行参数校验的流程步骤

 更新时间:2023年09月18日 09:39:47   作者:huangdaxian520  
SpringBoot 提供了一种方便的方式来进行参数校验:使用 Hibernate Validator,Spring Boot 提供了一种方便的方式来进行参数校验:使用 Hibernate Validator,所以本文给大家介绍了SpringBoot使用@valid进行参数校验的流程步骤,需要的朋友可以参考下

Spring Boot 提供了一种方便的方式来进行参数校验:使用 Hibernate Validator。

要在 Spring Boot 应用程序中使用 Hibernate Validator,您需要按照以下步骤进行操作:

1、添加依赖项

在 pom.xml 或 build.gradle 文件中添加以下依赖项:

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

2、创建验证器类

创建一个验证器类,该类包含要验证的字段及其规则。例如:

public class MyRequest {
    @NotNull(message = "Name cannot be null")
    private String name;
    @Min(value = 18, message = "Age should not be less than 18")
    private int age;
    @Email(message = "Email should be valid")
    private String email;
    // getters and setters
}

3、在控制器中使用验证器

将验证器作为参数传递给控制器方法,并使用 @Valid 注释进行注释。例如:

@RestController
@RequestMapping("/api")
public class MyController {
    @PostMapping("/users")
    public ResponseEntity<?> addUser(@Valid @RequestBody MyRequest request) {
        return ResponseEntity.ok().build();
    }
}

这样就可以在请求中使用 @Valid 注释进行验证,如果不符合条件,则会抛出 ConstraintViolationException 异常。

但是,这样的信息对于开发来说非常杂乱,因此,我们可以用全局异常处理,来统一进行参数验证。通过@ExceptionHandler指定我们需要处理的异常,e.getBindingResult()来获取我们校验后结果对象,如果发生校验失败就通过bindingReslt.getFiledError().getDefaultMessage()获取绑定在对象上面message信息,并返回。

以上就是SpringBoot使用@valid进行参数校验的流程步骤的详细内容,更多关于SpringBoot @valid参数校验的资料请关注脚本之家其它相关文章!

相关文章

  • MyBatis动态SQL与缓存原理深入分析

    MyBatis动态SQL与缓存原理深入分析

    这篇文章主要介绍了MyBatis动态SQL与缓存原理,Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题
    2023-02-02
  • 详解Java设计模式中的装饰模式

    详解Java设计模式中的装饰模式

    装饰模式是指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。本文将为大家详细介绍一下装饰模式,感兴趣的可以了解一下
    2021-12-12
  • bool当成函数参数错误理解

    bool当成函数参数错误理解

    经常会在函数的参数里使用bool参数,这会大大地降低代码的可读性
    2012-11-11
  • easyExcel分批导入文件方式

    easyExcel分批导入文件方式

    这篇文章主要介绍了easyExcel分批导入文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Springboot如何读取resources下的json配置文件

    Springboot如何读取resources下的json配置文件

    这篇文章主要介绍了Springboot如何读取resources下的json配置文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java中FilterInputStream和FilterOutputStream的用法详解

    Java中FilterInputStream和FilterOutputStream的用法详解

    这篇文章主要介绍了Java中FilterInputStream和FilterOutputStream的用法详解,这两个类分别用于封装输入和输出流,需要的朋友可以参考下
    2016-06-06
  • idea集成shell运行环境以及shell输出中文乱码的解决

    idea集成shell运行环境以及shell输出中文乱码的解决

    这篇文章主要介绍了idea集成shell运行环境以及shell输出中文乱码的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • MyBatis update标签详解

    MyBatis update标签详解

    这篇文章主要介绍了MyBatis update标签,使用 Map 传递参数会导致业务可读性的丧失,继而导致后续扩展和维护的困难,所以在实际应用中我们应该果断废弃该方式,需要的朋友可以参考下
    2023-10-10
  • Springboot获取jar包中resources资源目录下的文件

    Springboot获取jar包中resources资源目录下的文件

    今天在项目中遇到一个业务场景,需要用到resources资源目录下的文件,本文主要介绍了Springboot获取jar包中resources资源目录下的文件,感兴趣的可以了解一下
    2023-12-12
  • springboot项目中controller层与前端的参数传递方式

    springboot项目中controller层与前端的参数传递方式

    这篇文章主要介绍了springboot项目中controller层与前端的参数传递方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10

最新评论