spring中的参数校验技术:jakarta.validation使用详解
一、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就会报错。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
springboot 动态数据源的实现方法(Mybatis+Druid)
这篇文章主要介绍了springboot 动态数据源的实现方法(Mybatis+Druid),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-01-01
springboot集成mybaits-generator自动生成代码的流程分析
这篇文章主要介绍了springboot集成mybaits-generator自动生成代码的流程分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,感兴趣的朋友一起看看吧2025-04-04
Spring Security基于HttpRequest配置权限示例详解
这篇文章主要介绍了Spring Security基于HttpRequest配置权限示例详解,我们在配置中配置的url被封装成RequestMatcher,而hasRole被封装成AuthorityAuthorizationManager,本文结合示例代码讲解的非常详细,需要的朋友可以参考下2024-03-03


最新评论