javax.validation在Spring?Boot請(qǐng)求中使用方式
在Spring boot中對(duì)請(qǐng)求的參數(shù)做簡(jiǎn)單的驗(yàn)證
可以使用javax.validation注解。
需要做以下配置:
1. 在pom.xml配置
引入spring boot validation starter (這步比較容易遺漏,因?yàn)榇a中沒有對(duì)它的引用依賴,打包編譯都不會(huì)報(bào)錯(cuò))
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>`
2. 在需要請(qǐng)求的實(shí)體類中
使用javax.validation注解
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data
public class QueryVo {
private String data;
@NotEmpty(message = "Input can not be empty!")
@NotNull(message = "Input can not be empty!")
private String input;
}
3. 在對(duì)應(yīng)的請(qǐng)求中使用@Valid 注解
@ApiOperation(value = "查詢")
@RequestMapping(path = "/query", method = RequestMethod.POST)
@ResponseBody
public APIModel query(@Valid @RequestBody QueryVo query) throws Exception {
return service.query(query);
}
4. 捕獲異常并組裝返回消息格式
@ExceptionHandler(value = BindException.class)
public APIModel bindExceptionHandler(HttpServletRequest request, BindException e) {
logger.error("Error found:", e);
BindingResult bindingResult = e.getBindingResult();
List<ObjectError> objectErrors = bindingResult.getAllErrors();
ObjectError objectError = objectErrors.get(0);
return APIModel.error(objectError.getDefaultMessage());
}
5. 測(cè)試代碼獲取如下結(jié)果

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 關(guān)于javax.validation.constraints的超詳細(xì)說明
- 使用javax.validation.constraints對(duì)請(qǐng)求體進(jìn)行統(tǒng)一校驗(yàn)
- javax.validation.constraints如何校驗(yàn)參數(shù)合法性
- javax.validation.constraints注解使用
- javax.validation包里@NotNull等注解的使用方式
- 基于javax.validation結(jié)合spring的最佳實(shí)踐
- javax.validation自定義日期范圍校驗(yàn)注解操作
- Springboot項(xiàng)目javax.validation使用方法詳解
相關(guān)文章
Java源碼解析CopyOnWriteArrayList的講解
今天小編就為大家分享一篇關(guān)于Java源碼解析CopyOnWriteArrayList的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01
關(guān)于IntelliJ IDEA 打包代碼報(bào)錯(cuò)的問題
這篇文章主要介紹了關(guān)于IntelliJ IDEA 打包代碼報(bào)錯(cuò)的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
SpringBoot3實(shí)現(xiàn)Gzip壓縮優(yōu)化的技術(shù)指南
隨著 Web 應(yīng)用的用戶量和數(shù)據(jù)量增加,網(wǎng)絡(luò)帶寬和頁(yè)面加載速度逐漸成為瓶頸,為了減少數(shù)據(jù)傳輸量,提高用戶體驗(yàn),我們可以使用 Gzip 壓縮 HTTP 響應(yīng),本文將介紹如何在 Spring Boot 3 中實(shí)現(xiàn) Gzip 壓縮優(yōu)化,需要的朋友可以參考下2025-04-04
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(32)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
SpringBoot啟動(dòng)過程的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot啟動(dòng)過程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

