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中沒(méi)有對(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ì)說(shuō)明
- 使用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數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之棧和隊(duì)列
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)之棧和隊(duì)列,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有一定的幫助,需要的朋友可以參考下2021-05-05
輕松學(xué)會(huì)使用JavaMail?API發(fā)送郵件
想要輕松學(xué)會(huì)使用JavaMail?API發(fā)送郵件嗎?本指南將帶你快速掌握這一技能,讓你能夠輕松發(fā)送電子郵件,無(wú)論是個(gè)人還是工作需求,跟著我們的步驟,很快你就可以在Java應(yīng)用程序中自如地處理郵件通信了!2023-12-12
Java Socket聊天室編程(一)之利用socket實(shí)現(xiàn)聊天之消息推送
這篇文章主要介紹了Java Socket聊天室編程(一)之利用socket實(shí)現(xiàn)聊天之消息推送的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
SpringBoot?整合RabbitMq?自定義消息監(jiān)聽(tīng)容器來(lái)實(shí)現(xiàn)消息批量處理
Spring Boot中提供了默認(rèn)的監(jiān)聽(tīng)器容器,但是有時(shí)候我們需要自定義監(jiān)聽(tīng)器容器,來(lái)滿足一些特殊的需求,比如批量獲取數(shù)據(jù),這篇文章主要介紹了SpringBoot?整合RabbitMq?自定義消息監(jiān)聽(tīng)容器來(lái)實(shí)現(xiàn)消息批量處理,需要的朋友可以參考下2023-04-04
解決springboot無(wú)法注入JpaRepository的問(wèn)題
這篇文章主要介紹了解決springboot無(wú)法注入JpaRepository的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
Java實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)網(wǎng)絡(luò)資源的斷點(diǎn)續(xù)傳功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下2022-10-10
Java五子棋簡(jiǎn)單實(shí)現(xiàn)代碼舉例
Java五子棋游戲是一種經(jīng)典的兩人對(duì)戰(zhàn)棋類游戲,它基于簡(jiǎn)單的規(guī)則,即任何一方的棋子在棋盤上形成連續(xù)的五個(gè),無(wú)論是橫、豎還是斜線,都將獲勝,這篇文章主要介紹了Java五子棋實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-10-10

