Springboot整合hibernate validator 全局異常處理步驟詳解
第一步:依賴
<!--數(shù)據(jù)有效性校驗(yàn)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>第二步:配置文件
@Configuration
public class HibernateValidatorConfig {
@Bean
public static Validator validator() {
return Validation.byProvider(HibernateValidator.class)
.configure()
// 開啟快速校驗(yàn)(不校驗(yàn)所有參數(shù),只要出現(xiàn)校驗(yàn)失敗情況直接返回,不再進(jìn)行后續(xù)參數(shù)校驗(yàn)),默認(rèn)校驗(yàn)所有參數(shù),false校驗(yàn)全部
.failFast(true)
.buildValidatorFactory()
.getValidator();
}
}第三步:全局異常處理
@RestControllerAdvice
public class GlobalExceptionHandler {
/**
* Hibernate validator 參數(shù)校驗(yàn)異常
*
* @param ex
* @return
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResultBean<String> validationErrorHandler(MethodArgumentNotValidException ex) {
// 同樣是獲取BindingResult對(duì)象,然后獲取其中的錯(cuò)誤信息
// 如果前面開啟了fail_fast,事實(shí)上這里只會(huì)有一個(gè)信息
//如果沒有,則可能又多個(gè)
List<String> errorInformation = ex.getBindingResult().getAllErrors()
.stream()
.map(ObjectError::getDefaultMessage)
.collect(Collectors.toList());
return ResultBeanUtil.error("").setMsg(errorInformation.toString());
}
}第四步:
@Getter
@Setter
@ToString
public class AdminLoginDTO {
@NotBlank(message = "賬戶不能為空")
@Size(min = 6, max = 32)
private String account;
@NotBlank(message = "密碼不能為空")
@Size(min = 6, max = 32)
private String password;
}第五步:
@PostMapping("/v1/login")
public ResultBean<SaTokenInfo> login(@RequestBody @Valid AdminLoginDTO adminLoginDTO) {
}到此這篇關(guān)于Springboot整合hibernate validator 全局異常處理的文章就介紹到這了,更多相關(guān)Springboot全局異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中IP白名單控制實(shí)現(xiàn)限制接口訪問
IP白名單是一種網(wǎng)絡(luò)安全機(jī)制,通過預(yù)設(shè)允許訪問的IP地址列表實(shí)現(xiàn)對(duì)請(qǐng)求來源的精確控制,在Spring Boot中實(shí)現(xiàn)IP白名單有多種技術(shù)方案,下面就拉介紹一下,感興趣的可以了解一下2025-07-07
Java Web程序中利用Spring框架返回JSON格式的日期
這里我們來介紹一下Java Web程序中利用Spring框架返回JSON格式的日期的方法,前提注意使用@DatetimeFormat時(shí)要引入一個(gè)類庫joda-time-版本.jar,否則會(huì)無法訪問相應(yīng)路徑2016-05-05
完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問題
這篇文章主要介紹了完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
springMVC框架下JQuery傳遞并解析Json數(shù)據(jù)
json作為一種輕量級(jí)的數(shù)據(jù)交換格式,在前后臺(tái)數(shù)據(jù)交換中占據(jù)著非常重要的地位,這篇文章主要介紹了springMVC框架下JQuery傳遞并解析Json數(shù)據(jù),有興趣的可以了解一下。2017-01-01
解決response.setHeader設(shè)置下載文件名無效的問題
這篇文章主要介紹了解決response.setHeader設(shè)置下載文件名無效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
idea創(chuàng)建springboot項(xiàng)目,java版本只能選擇17和21的解決方案
這篇文章主要介紹了idea創(chuàng)建springboot項(xiàng)目,java版本只能選擇17和21的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
詳解Maven settings.xml配置(指定本地倉庫、阿里云鏡像設(shè)置)
這篇文章主要介紹了詳解Maven settings.xml配置(指定本地倉庫、阿里云鏡像設(shè)置),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12
Mybatis Generator Plugin悲觀鎖實(shí)現(xiàn)示例
本文將從悲觀鎖為例,讓你快速了解如何實(shí)現(xiàn)Mybatis Generator Plugin。文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
SpringBoot學(xué)習(xí)之Json數(shù)據(jù)交互的方法
這篇文章主要介紹了SpringBoot學(xué)習(xí)之Json數(shù)據(jù)交互的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12

