spring中的参数校验技术:jakarta.validation使用详解

 更新时间:2025年11月13日 08:52:48   作者:南山love  
Jakarta Validation 是一个用于校验传递参数的工具,通过注解(如 @NotBlank、@NotNull)在 Spring Boot 框架中可以直接引用依赖进行参数校验,示例展示了如何在登录和获取信息接口中使用这些注解进行参数校验

一、jakarta.validation是什么?

用来校验传递参数的一个工具。

javax.validation 是Java Bean Validation API的包名,这个API允许开发者通过注解(@NotBlank,@NotNull)等注解,对参数进行校验。

常见的一些注解,及其使用。

二、使用步骤

在SpingBoot框架中可以直接引用依赖。

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

三、使用示例

(1)该注释可以加在需要检测属性的上面。

以下是一个登录接口的实现。

@RequestMapping("/login")
private UserLoginResponse login(@RequestBody @Validated UserLoginRequest userLoginRequest) {
log.info("用户登录,username:{}", userLoginRequest.getUsername());
UserLoginResponse userLoginResponse = userService.checkPassword(userLoginRequest);
return userLoginResponse;
}

@validated就使在后面使用参数userLoginRequest要先进行jakarta.validation的参数检验。

@Data
public class UserLoginRequest {
@NotNull(message = "用户名不能为空")
@Length(min = 6, max = 20)
private String username;
@NotNull(message = "用户名不能为空")
private String password;
}

在这个代码中@NotNull就使username与password不能为空,如果为空就会根据后面的信息进行报错,而@length则规定了username的最大和最小长度。

(2)该注释也可以直接加在参数前面

以下接口是一个根据id获取信息的接口

@RequestMapping("/getBlogDetail")
public BlogResponse getBlogDetail(@NotNull Integer blogId){
log.info("获取博客详情");
BlogResponse BlogDetail = blogService.getBlogDetail(blogId);
return BlogDetail;
}

该接口在传递给service前就对id进行了检测,如果blogId为null就会报错。

总结

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

相关文章

  • Java中多媒体文件上传及页面回显的操作代码

    Java中多媒体文件上传及页面回显的操作代码

    这篇文章主要介绍了Java中多媒体文件上传及页面回显的操作代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 关于@Component注解下的类无法@Autowired问题

    关于@Component注解下的类无法@Autowired问题

    这篇文章主要介绍了关于@Component注解下的类无法@Autowired问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • springboot通过注解、接口创建定时任务详解

    springboot通过注解、接口创建定时任务详解

    使用SpringBoot创建定时任务其实是挺简单的,这篇文章主要给大家介绍了关于springboot如何通过注解、接口创建这两种方法实现定时任务的相关资料,需要的朋友可以参考下
    2021-07-07
  • Spring之@Aspect中通知的5种方式详解

    Spring之@Aspect中通知的5种方式详解

    本文主要介绍了Spring之@Aspect中通知的5种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • jmeter正则表达式实例详解

    jmeter正则表达式实例详解

    正则表达式就是记录文本规则的代码。学习正则表达式最好就是从实例下手。下面我们通过实例代码给大家介绍jmeter正则表达式的相关知识,感兴趣的朋友一起看看吧
    2021-12-12
  • 关于spring事务传播行为非事务方式的理解

    关于spring事务传播行为非事务方式的理解

    这篇文章主要介绍了对spring事务传播行为非事务方式的全面理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • JAVA基于Arrays.sort()实现数组升序和降序

    JAVA基于Arrays.sort()实现数组升序和降序

    这篇文章主要介绍了JAVA基于Arrays.sort()实现数组升序和降序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • java中对List分段操作的实例

    java中对List分段操作的实例

    这篇文章主要介绍了java中对List分段操作的实例的相关资料,希望通过本文大家能够掌握list的分段实现方法,需要的朋友可以参考下
    2017-09-09
  • java9区分opens与exports

    java9区分opens与exports

    本篇文章主要给大家讲述了java9中opens与exports的区别以及用法的不同之处,一起学习下吧。
    2018-02-02
  • Spring整合Mycat2的具体过程详解

    Spring整合Mycat2的具体过程详解

    这篇文章主要给大家介绍Springboot整合Mycat2的具体过程,文中有详细的图解过程,感兴趣的小伙伴可以跟着小编一起来学习
    2023-05-05

最新评论