spring中的參數(shù)校驗(yàn)技術(shù):jakarta.validation使用詳解
一、jakarta.validation是什么?
用來(lái)校驗(yàn)傳遞參數(shù)的一個(gè)工具。
javax.validation 是Java Bean Validation API的包名,這個(gè)API允許開(kāi)發(fā)者通過(guò)注解(@NotBlank,@NotNull)等注解,對(duì)參數(shù)進(jìn)行校驗(yàn)。
常見(jiàn)的一些注解,及其使用。

二、使用步驟
在SpingBoot框架中可以直接引用依賴。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
三、使用示例
(1)該注釋可以加在需要檢測(cè)屬性的上面。
以下是一個(gè)登錄接口的實(shí)現(xiàn)。
@RequestMapping("/login")
private UserLoginResponse login(@RequestBody @Validated UserLoginRequest userLoginRequest) {
log.info("用戶登錄,username:{}", userLoginRequest.getUsername());
UserLoginResponse userLoginResponse = userService.checkPassword(userLoginRequest);
return userLoginResponse;
}@validated就使在后面使用參數(shù)userLoginRequest要先進(jìn)行jakarta.validation的參數(shù)檢驗(yàn)。
@Data
public class UserLoginRequest {
@NotNull(message = "用戶名不能為空")
@Length(min = 6, max = 20)
private String username;
@NotNull(message = "用戶名不能為空")
private String password;
}在這個(gè)代碼中@NotNull就使username與password不能為空,如果為空就會(huì)根據(jù)后面的信息進(jìn)行報(bào)錯(cuò),而@length則規(guī)定了username的最大和最小長(zhǎng)度。
(2)該注釋也可以直接加在參數(shù)前面
以下接口是一個(gè)根據(jù)id獲取信息的接口
@RequestMapping("/getBlogDetail")
public BlogResponse getBlogDetail(@NotNull Integer blogId){
log.info("獲取博客詳情");
BlogResponse BlogDetail = blogService.getBlogDetail(blogId);
return BlogDetail;
}該接口在傳遞給service前就對(duì)id進(jìn)行了檢測(cè),如果blogId為null就會(huì)報(bào)錯(cuò)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Spring?Boot參數(shù)校驗(yàn)的8大坑與生產(chǎn)級(jí)避坑完整指南
- 基于Spring Validation實(shí)現(xiàn)全局參數(shù)校驗(yàn)異常處理的示例詳解
- SpringBoot中POST請(qǐng)求參數(shù)校驗(yàn)的實(shí)戰(zhàn)指南
- SpringBoot使用spring-boot-starter-validation實(shí)現(xiàn)參數(shù)校驗(yàn)
- Spring Boot 自動(dòng)參數(shù)校驗(yàn)的實(shí)現(xiàn)步驟
- SpringBoot利用Validation包實(shí)現(xiàn)高效參數(shù)校驗(yàn)
- SpringBoot利用@Validated注解優(yōu)雅實(shí)現(xiàn)參數(shù)校驗(yàn)
相關(guān)文章
springboot 動(dòng)態(tài)數(shù)據(jù)源的實(shí)現(xiàn)方法(Mybatis+Druid)
這篇文章主要介紹了springboot 動(dòng)態(tài)數(shù)據(jù)源的實(shí)現(xiàn)方法(Mybatis+Druid),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Dom4j解析XML_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Dom4j解析XML,dom4j是一個(gè)Java的XML API,類(lèi)似于jdom,用來(lái)讀寫(xiě)XML文件的,有興趣的可以了解一下2017-07-07
springboot集成mybaits-generator自動(dòng)生成代碼的流程分析
這篇文章主要介紹了springboot集成mybaits-generator自動(dòng)生成代碼的流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧2025-04-04
自己動(dòng)手寫(xiě)一個(gè)java版簡(jiǎn)單云相冊(cè)
這篇文章主要為大家分享了自己動(dòng)手寫(xiě)的一個(gè)java版簡(jiǎn)單云相冊(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07
Java嵌入式開(kāi)發(fā)的優(yōu)勢(shì)及有點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家整理了關(guān)于Java嵌入式開(kāi)發(fā)的優(yōu)勢(shì)及相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2022-11-11
Spring Security基于HttpRequest配置權(quán)限示例詳解
這篇文章主要介紹了Spring Security基于HttpRequest配置權(quán)限示例詳解,我們?cè)谂渲弥信渲玫膗rl被封裝成RequestMatcher,而hasRole被封裝成AuthorityAuthorizationManager,本文結(jié)合示例代碼講解的非常詳細(xì),需要的朋友可以參考下2024-03-03

