如何在springboot中引入?yún)?shù)校驗(yàn)
一、概要
一般我們判斷前端傳過來的參數(shù),需要對(duì)某些值進(jìn)行判斷,是否滿足條件。
而springboot相關(guān)的參數(shù)校驗(yàn)注解,可以解決我們這個(gè)問題。
二、快速開始
首先,我用的springboot版本是 3.1.5
引入?yún)?shù)校驗(yàn)相關(guān)依賴
<!--1.導(dǎo)入JSR303規(guī)范-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>定義實(shí)體類,并在實(shí)體類上加入相關(guān)注解。
public class Dept {
private Integer id; //ID
@NotNull
private String name; //部門名稱
private LocalDateTime createTime; //創(chuàng)建時(shí)間
private LocalDateTime updateTime; //修改時(shí)間
}在controller層 給需要校驗(yàn)的參數(shù)加上 @ Validated
@PostMapping("/depts")
public Result addDept( @RequestBody @Validated Dept dept){
//這里應(yīng)該判斷是否返回成功
deptService.addDept(dept);
return Result.success();
}此時(shí)如果再進(jìn)行傳入?yún)?shù),如果name為null 就會(huì)報(bào)錯(cuò)。
三、額外補(bǔ)充
在前面我們談到了校驗(yàn)的基本用法,但在開發(fā)中,我需要對(duì)這些異常進(jìn)行統(tǒng)一處理,并返回符合相應(yīng)規(guī)則的返回值。
因此,需要用到全局異常處理。
讓gpt解答一下:

@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<ErrorResponse> handleValidationException(MethodArgumentNotValidException ex) {
BindingResult bindingResult = ex.getBindingResult();
List<String> errors = bindingResult.getFieldErrors().stream()
.map(FieldError::getDefaultMessage)
.collect(Collectors.toList());
ErrorResponse response = new ErrorResponse("Validation Failed", errors);
return ResponseEntity.badRequest().body(response);
}
}bindingResult.getAllErrors(); getFieldErrors() 有什么區(qū)別?


@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public ResponseEntity<String> createUser(@Validated @RequestBody User user, BindingResult result) {
if (result.hasErrors()) {
// 獲取字段錯(cuò)誤列表
List<FieldError> fieldErrors = result.getFieldErrors();
// 遍歷字段錯(cuò)誤列表,輸出錯(cuò)誤信息
for (FieldError error : fieldErrors) {
String fieldName = error.getField();
String errorMessage = error.getDefaultMessage();
System.out.println("字段名:" + fieldName + ",錯(cuò)誤信息:" + errorMessage);
}
return ResponseEntity.badRequest().body("參數(shù)校驗(yàn)失敗");
}
// 校驗(yàn)通過,處理創(chuàng)建用戶的邏輯
return ResponseEntity.ok("用戶創(chuàng)建成功");
}
}到此這篇關(guān)于如何在springboot中引入?yún)?shù)校驗(yàn)的文章就介紹到這了,更多相關(guān)springboot參數(shù)校驗(yàn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot通過自定義注解實(shí)現(xiàn)參數(shù)校驗(yàn)
- SpringBoot參數(shù)校驗(yàn)之@Valid的使用詳解
- SpringBoot參數(shù)校驗(yàn)之@Validated的使用詳解
- SpringBoot進(jìn)行參數(shù)校驗(yàn)的方法詳解
- SpringBoot開發(fā)詳解之Controller接收參數(shù)及參數(shù)校驗(yàn)
- SpringBoot參數(shù)校驗(yàn)與國際化使用教程
- SpringBoot使用validation-api實(shí)現(xiàn)對(duì)枚舉類參數(shù)校驗(yàn)的方法
相關(guān)文章
Java中將byte[]轉(zhuǎn)MultipartFile的具體實(shí)現(xiàn)方式
將?byte[]轉(zhuǎn)換為?MultipartFile在處理文件上傳、微服務(wù)間數(shù)據(jù)傳輸或格式轉(zhuǎn)換等場(chǎng)景中非常有用,下面為您是幾種幾種主流的實(shí)現(xiàn)方式、代碼示例以及關(guān)鍵注意事項(xiàng),需要的朋友可以參考下2025-11-11
springboot項(xiàng)目之相互依賴報(bào)錯(cuò)問題(基于idea)
這篇文章主要介紹了springboot項(xiàng)目之相互依賴報(bào)錯(cuò)問題(基于idea),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java中try-catch的使用及注意細(xì)節(jié)
現(xiàn)在有很多的語言都支持try-catch,比如常見的就是c++,java等,這篇文章主要給大家介紹了關(guān)于Java中try-catch的使用及注意細(xì)節(jié)的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Java?-jar運(yùn)行jar包時(shí)可添加參數(shù)示例詳解
這篇文章主要給大家介紹了Java?-jar運(yùn)行jar包時(shí)可添加參數(shù)的相關(guān)資料,包括設(shè)置JAR文件、系統(tǒng)屬性、JVM參數(shù)、Spring?Profiles、配置文件位置和名稱,以及傳遞給應(yīng)用程序的參數(shù),需要的朋友可以參考下2025-05-05

