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题解LeetCode20.有效的括号

    java题解LeetCode20.有效的括号

    这篇文章主要为大家介绍了java题解LeetCode20.有效的括号示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • springboot 动态数据源的实现方法(Mybatis+Druid)

    springboot 动态数据源的实现方法(Mybatis+Druid)

    这篇文章主要介绍了springboot 动态数据源的实现方法(Mybatis+Druid),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • JDBC获取数据库连接由浅入深

    JDBC获取数据库连接由浅入深

    大家好,本篇文章主要讲的是JDBC获取数据库连接由浅入深,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • 浅谈JavaAPI 中 <E> 与 <T> 的含义

    浅谈JavaAPI 中 <E> 与 <T> 的含义

    下面小编就为大家带来一篇浅谈JavaAPI 中 <E> 与 <T> 的含义。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Dom4j解析XML_动力节点Java学院整理

    Dom4j解析XML_动力节点Java学院整理

    这篇文章主要介绍了Dom4j解析XML,dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的,有兴趣的可以了解一下
    2017-07-07
  • springboot集成mybaits-generator自动生成代码的流程分析

    springboot集成mybaits-generator自动生成代码的流程分析

    这篇文章主要介绍了springboot集成mybaits-generator自动生成代码的流程分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2025-04-04
  • 自己动手写一个java版简单云相册

    自己动手写一个java版简单云相册

    这篇文章主要为大家分享了自己动手写的一个java版简单云相册,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Java嵌入式开发的优势及有点总结

    Java嵌入式开发的优势及有点总结

    在本篇内容里小编给大家整理了关于Java嵌入式开发的优势及相关知识点内容,有兴趣的朋友们学习下。
    2022-11-11
  • 自定义注解+Spel实现分布式锁方式

    自定义注解+Spel实现分布式锁方式

    这篇文章主要介绍了自定义注解+Spel实现分布式锁方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring Security基于HttpRequest配置权限示例详解

    Spring Security基于HttpRequest配置权限示例详解

    这篇文章主要介绍了Spring Security基于HttpRequest配置权限示例详解,我们在配置中配置的url被封装成RequestMatcher,而hasRole被封装成AuthorityAuthorizationManager,本文结合示例代码讲解的非常详细,需要的朋友可以参考下
    2024-03-03

最新评论