在spring中的参数校验技术:jakarta.validation
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档用来校验传递参数的一个工具。javax.validation 是Java Bean Validation API的包名,这个API允许开发者通过注解(@NotBlank,@NotNull)等注解,对参数进行校验。常见的一些注解,及其使用。
目录
一、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就会报错。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)