java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > spring参数校验jakarta.validation

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

作者:南山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就会报错。

总结

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

您可能感兴趣的文章:
阅读全文