亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

SpringBoot整合Hibernate Validator實現參數驗證功能

瀏覽:6日期:2023-05-11 08:38:14

在前后端分離的開發模式中,后端對前端傳入的參數的校驗成了必不可少的一個環節。但是在多參數的情況下,在controller層加上參數驗證,會顯得特別臃腫,并且會有許多的重復代碼。這里可以引用Hibernate Validator來解決這個問題,直接在實體類進行參數校驗,驗證失敗直接返回錯誤信息給前端,減少controller層的代碼量。

一、xml引入Hibernate Validator

<!-- 驗證器 --><dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.1.5.Final</version></dependency>

二、通過注解在實體類進行參數校驗

@Datapublic class UserModel { @NotNull(message = '用戶名稱不能為空!') private String userName; @NotNull(message = 'age不能為null!') @Range(min = 1, max = 888, message = '范圍為1至888') private Integer age; /** * 日期格式化轉換 */ @NotNull(message = '日期不能為null!') private Date date;}

這里用到的參數校驗的注解有@NotNull和@Range,message是到時候我們返回給前端的信息,注解的具體意思如下:

@Null 被注釋的元素必須為null @NotNull 被注釋的元素不能為null @AssertTrue 被注釋的元素必須為true @AssertFalse 被注釋的元素必須為false @Min(value) 被注釋的元素必須是一個數字,其值必須大于等于指定的最小值 @Max(value) 被注釋的元素必須是一個數字,其值必須小于等于指定的最大值 @DecimalMin(value) 被注釋的元素必須是一個數字,其值必須大于等于指定的最小值 @DecimalMax(value) 被注釋的元素必須是一個數字,其值必須小于等于指定的最大值 @Size(max,min) 被注釋的元素的大小必須在指定的范圍內。 @Digits(integer,fraction) 被注釋的元素必須是一個數字,其值必須在可接受的范圍內 @Past 被注釋的元素必須是一個過去的日期 @Future 被注釋的元素必須是一個將來的日期 @Pattern(value) 被注釋的元素必須符合指定的正則表達式。 @Email 被注釋的元素必須是電子郵件地址 @Length 被注釋的字符串的大小必須在指定的范圍內 @NotEmpty 被注釋的字符串必須非空 @Range 被注釋的元素必須在合適的范圍內

三、controller層的方法加上@Valid注解

@PostMapping('/testPost')public Object testPost(@RequestBody @Valid UserModel userModel, BindingResult result){ if(result.hasErrors()){ for(ObjectError error:result.getAllErrors()){ return error.getDefaultMessage(); }} return userModel;}

controller層這里只需要在實體類的前面加上@Valid注解,這個注解可以實現數據的驗證。這里BindingResult是存儲了校驗時的錯誤信息,驗證有誤時將錯誤信息返回給前端。這里不使用BindingResult的時候,控制臺會報MethodArgumentNotValidException,這里可以通過自定義異常類來捕捉它,然后去掉BindingResult,以及難看的if判斷。

四、自定義異常類捕捉MethodArgumentNotValidException

@RestControllerAdvicepublic class GlobalExceptionAdvice { @ExceptionHandler(value = MethodArgumentNotValidException.class) public JsonData validException(MethodArgumentNotValidException e) { //驗證post請求的參數合法性 MethodArgumentNotValidException notValidException = e; String msg = notValidException.getBindingResult().getFieldError().getDefaultMessage(); return JsonData.buildError(msg); }}

使用PostMan的測試結果如下:

SpringBoot整合Hibernate Validator實現參數驗證功能

具體的代碼可以在我的gitee上面 查看 ,springboot_validator

到此這篇關于SpringBoot整合Hibernate Validator實現參數驗證功能的文章就介紹到這了,更多相關SpringBoot 參數驗證 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 亚洲国产日韩在线人成蜜芽 | 久久免费大片 | 欧美日韩综合网在线观看 | 欧美一级暴毛片 | 亚洲大片在线观看 | 中国国产xxxx免费视频 | 草草草网站 | 黑人干中国妞 | 成人国产亚洲欧美成人综合网 | 一级片视频网站 | 香蕉国产线观看 | 亚洲欧美一区二区久久 | 久久国产欧美日韩高清专区 | 国产精品黄网站免费观看 | 欧美在线观看免费一区视频 | 国产日韩精品一区二区在线观看 | 精品在线一区二区三区 | www.夜色.com| 欧美一级毛片在线看视频 | 中文字幕有码热在线视频 | 欧美日本国产 | 国产精品免费一区二区三区四区 | 美女污污视频网站 | 久久综合九色综合欧美播 | 国产综合色精品一区二区三区 | 麻豆91制片厂 | 欧美国产一区二区二区 | 成人在线激情网 | 中国女警察一级毛片视频 | 特一级黄色毛片 | 亚洲日本乱码中文在线电影亚洲 | 污污网站免费在线观看 | 热伊人99re久久精品最新地 | 高清成人综合 | 日韩精品国产精品 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 免费国产最新进精品视频 | 亚洲日本va在线观看 | 欧美精品国产第一区二区 | 欧美日韩亚洲国产综合 | 啪啪网站色大全免费 |