日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

validation 参数校验和统一异常处理

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 validation 参数校验和统一异常处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

            • 1. 引入依賴
            • 2. 校驗規則
            • 3. 規則使用
            • 4. 自定義異常類
            • 5. 統一返回對象封裝
            • 6. 統一異常對象
            • 7. 統一異常枚舉
            • 8. 前端form表單輸入,自動觸發校驗

1. 引入依賴
<!--參數校驗--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>
2. 校驗規則
@NotNull(message = "【每頁頁碼】不能為空")private int page;@NotNull(message = "【每頁條數】不能為空")@Max(value = 100,message = "【每頁條數】不能超過100")
3. 規則使用
public CommonResp list(@Valid EbookQueryReq req) {}
4. 自定義異常類
package com.jiawa.wiki.controller;import com.jiawa.wiki.exception.BusinessException; import com.jiawa.wiki.resp.CommonResp; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.validation.BindException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody;/*** 統一異常處理、數據預處理等*/ @ControllerAdvice public class ControllerExceptionHandler {private static final Logger LOG = LoggerFactory.getLogger(ControllerExceptionHandler.class);/*** 校驗異常統一處理* @param e* @return*/@ExceptionHandler(value = BindException.class)@ResponseBodypublic CommonResp validExceptionHandler(BindException e) {CommonResp commonResp = new CommonResp();LOG.warn("參數校驗失敗:{}", e.getBindingResult().getAllErrors().get(0).getDefaultMessage());commonResp.setSuccess(false);commonResp.setMessage(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());return commonResp;}
5. 統一返回對象封裝
package com.jiawa.wiki.resp;public class CommonResp<T> {/*** 業務上的成功或失敗*/private boolean success = true;/*** 返回信息*/private String message;/*** 返回泛型數據,自定義類型*/private T content;public boolean getSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getContent() {return content;}public void setContent(T content) {this.content = content;}@Overridepublic String toString() {final StringBuffer sb = new StringBuffer("ResponseDto{");sb.append("success=").append(success);sb.append(", message='").append(message).append('\'');sb.append(", content=").append(content);sb.append('}');return sb.toString();} }
6. 統一異常對象
package com.jiawa.wiki.exception;public class BusinessException extends RuntimeException{private BusinessExceptionCode code;public BusinessException (BusinessExceptionCode code) {super(code.getDesc());this.code = code;}public BusinessExceptionCode getCode() {return code;}public void setCode(BusinessExceptionCode code) {this.code = code;}/*** 不寫入堆棧信息,提高性能*/@Overridepublic Throwable fillInStackTrace() {return this;} }
7. 統一異常枚舉
package com.jiawa.wiki.exception;public enum BusinessExceptionCode {USER_LOGIN_NAME_EXIST("登錄名已存在"),LOGIN_USER_ERROR("用戶名不存在或密碼錯誤"),VOTE_REPEAT("您已點贊過"),;private String desc;BusinessExceptionCode(String desc) {this.desc = desc;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;} }
8. 前端form表單輸入,自動觸發校驗

總結

以上是生活随笔為你收集整理的validation 参数校验和统一异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。