最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot校驗(yàn)前端傳遞的參數(shù)的流程步驟

 更新時(shí)間:2025年10月09日 10:24:31   作者:jovanz  
在日常項(xiàng)目開(kāi)發(fā)中,我們都知道參數(shù)驗(yàn)證是必不可少的一環(huán),但是有時(shí)候?yàn)榱送祽?把參數(shù)校驗(yàn)交給前端開(kāi)發(fā)人員去處理,這樣很容易影響系統(tǒng)穩(wěn)定性和安全性,所以本文給大家介紹了SpringBoot校驗(yàn)前端傳遞的參數(shù)的流程步驟,需要的朋友可以參考下

Spring Boot 參數(shù)校驗(yàn)(基于 Hibernate Validator)

1. 簡(jiǎn)介與依賴(lài)

  • 作用:對(duì) Controller 接收的參數(shù)進(jìn)行合法性校驗(yàn),提升接口健壯性。
  • 底層實(shí)現(xiàn):Hibernate Validator(Bean Validation 規(guī)范的參考實(shí)現(xiàn))。
  • 推薦依賴(lài)
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

自動(dòng)引入 hibernate-validator + javax.validation-api,無(wú)需手動(dòng)管理版本。

2. 使用方式

校驗(yàn) @RequestBody(JSON 對(duì)象)

  • 在參數(shù)前加 @Valid無(wú)需 @Validated。
@PostMapping("/user")
public Result createUser(@Valid @RequestBody User user) { ... }

校驗(yàn) @RequestParam / @PathVariable 等

  • 必須在 Controller 類(lèi)(或方法)上加 @Validated
@RestController
@Validated // ← 關(guān)鍵!
public class UserController {
    @GetMapping("/user/{id}")
    public Result getUser(@Min(1) @PathVariable Long id) { ... }
}

最佳實(shí)踐:Controller 類(lèi)統(tǒng)一加 @Validated,覆蓋所有校驗(yàn)場(chǎng)景。

3. 常用注解

非空校驗(yàn)

  • @NotNull:驗(yàn)證對(duì)象不為null,但允許空字符串或空白字符
  • @NotEmpty:驗(yàn)證字符串/集合/數(shù)組非null且長(zhǎng)度/大小>0(不檢查空白字符)
  • @NotBlank:驗(yàn)證字符串非null且至少包含一個(gè)非空白字符

范圍校驗(yàn)

  • @Size(min=, max=):限制字符串/集合/數(shù)組的長(zhǎng)度/大小范圍
  • @Min:驗(yàn)證數(shù)字最小值(含邊界值)
  • @Max:驗(yàn)證數(shù)字最大值(含邊界值)

格式校驗(yàn)

  • @Email:驗(yàn)證字符串是否符合郵箱格式
  • @Pattern(regexp = “…”):通過(guò)正則表達(dá)式自定義校驗(yàn)規(guī)則

時(shí)間校驗(yàn)

  • @Past:驗(yàn)證日期是否在當(dāng)前時(shí)間之前
  • @Future:驗(yàn)證日期是否在當(dāng)前時(shí)間之后

4. 全局異常處理器

統(tǒng)一處理校驗(yàn)失敗異常,返回結(jié)構(gòu)化錯(cuò)誤信息。有了全局異常處理器,前端可以收到規(guī)范化的錯(cuò)誤信息

@RestControllerAdvice
public class GlobalValidationExceptionHandler {

    // 處理 @RequestBody 校驗(yàn)失敗
    @ExceptionHandler(MethodArgumentNotValidException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public ApiResult<Map<String, String>> handleRequestBody(
            MethodArgumentNotValidException ex) {
        Map<String, String> errors = new HashMap<>();
        ex.getBindingResult().getFieldErrors()
          .forEach(e -> errors.put(e.getField(), e.getDefaultMessage()));
        return ApiResult.error(400, "參數(shù)校驗(yàn)失敗").data(errors);
    }

    // 處理 @RequestParam / @PathVariable 校驗(yàn)失敗
    @ExceptionHandler(ConstraintViolationException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public ApiResult<Map<String, String>> handleParams(
            ConstraintViolationException ex) {
        Map<String, String> errors = new HashMap<>();
        ex.getConstraintViolations().forEach(v ->
            errors.put(v.getPropertyPath().toString(), v.getMessage()));
        return ApiResult.error(400, "參數(shù)校驗(yàn)失敗").data(errors);
    }
}

返回示例:

{ "code": 400, "message": "參數(shù)校驗(yàn)失敗", "data": { "name": "姓名不能為空" } }

到此這篇關(guān)于SpringBoot校驗(yàn)前端傳遞的參數(shù)的流程步驟的文章就介紹到這了,更多相關(guān)SpringBoot校驗(yàn)前端傳遞參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot多模塊依賴(lài)沖突排查與架構(gòu)優(yōu)化實(shí)戰(zhàn)

    SpringBoot多模塊依賴(lài)沖突排查與架構(gòu)優(yōu)化實(shí)戰(zhàn)

    本文詳細(xì)記錄了在SpringBoot多模塊項(xiàng)目開(kāi)發(fā)中遇到的依賴(lài)版本沖突、模塊依賴(lài)設(shè)計(jì)不合理等問(wèn)題的排查和解決方案的過(guò)程,主要重點(diǎn)關(guān)注了父模塊依賴(lài)管理、模塊化拆分、按需依賴(lài)等等,需要的朋友可以參考下
    2026-04-04
  • Java中的CAS和ABA問(wèn)題說(shuō)明

    Java中的CAS和ABA問(wèn)題說(shuō)明

    這篇文章主要介紹了Java中的CAS和ABA問(wèn)題說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • java基于UDP實(shí)現(xiàn)在線(xiàn)聊天功能

    java基于UDP實(shí)現(xiàn)在線(xiàn)聊天功能

    這篇文章主要為大家詳細(xì)介紹了java基于UDP實(shí)現(xiàn)在線(xiàn)聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • java自定義Scanner類(lèi)似功能類(lèi)的實(shí)例講解

    java自定義Scanner類(lèi)似功能類(lèi)的實(shí)例講解

    這篇文章主要介紹了java自定義Scanner類(lèi)似功能類(lèi)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Java讀取Excel文件并寫(xiě)入數(shù)據(jù)庫(kù)的示例代碼

    Java讀取Excel文件并寫(xiě)入數(shù)據(jù)庫(kù)的示例代碼

    這篇文章主要介紹了Java讀取Excel文件并寫(xiě)入數(shù)據(jù)庫(kù)的示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-06-06
  • Java數(shù)據(jù)類(lèi)型超完整指南

    Java數(shù)據(jù)類(lèi)型超完整指南

    Java數(shù)據(jù)類(lèi)型可以分為基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型兩大類(lèi),這篇文章主要介紹了Java數(shù)據(jù)類(lèi)型的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-03-03
  • springboot 使用QQ郵箱發(fā)送郵件的操作方法

    springboot 使用QQ郵箱發(fā)送郵件的操作方法

    這篇文章主要介紹了springboot使用QQ郵箱發(fā)送郵件功能,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Java中的ZooKeeper使用

    Java中的ZooKeeper使用

    本文主要介紹了Java中的ZooKeeper使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • SpringBoot(JAVA)整合微信公眾號(hào)消息推送完整步驟(文本、圖片/視頻推送)

    SpringBoot(JAVA)整合微信公眾號(hào)消息推送完整步驟(文本、圖片/視頻推送)

    微信公眾號(hào)消息推送包括文本推送和圖文/視頻推送兩類(lèi),文本推送通過(guò)模板消息或自定義消息實(shí)現(xiàn),而圖文/視頻推送需先上傳素材至臨時(shí)/永久素材庫(kù),再上傳圖文消息,最后進(jìn)行消息推送,文中將實(shí)現(xiàn)的方法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • Java的基礎(chǔ)語(yǔ)法學(xué)習(xí)筆記

    Java的基礎(chǔ)語(yǔ)法學(xué)習(xí)筆記

    這里為大家整理了Java的基礎(chǔ)語(yǔ)法學(xué)習(xí)筆記,包括關(guān)鍵詞、運(yùn)算符與基本的流程控制語(yǔ)句寫(xiě)法等,需要的朋友可以參考下
    2016-05-05

最新評(píng)論

长垣县| 临沧市| 安岳县| 东莞市| 聂荣县| 巴林左旗| 揭东县| 郴州市| 寿阳县| 霍山县| 长寿区| 桐乡市| 微山县| 重庆市| 历史| 延安市| 文化| 尚义县| 神池县| 灵山县| 海口市| 浦县| 北碚区| 常州市| 扎鲁特旗| 吴堡县| 图们市| 武夷山市| 平度市| 永吉县| 长顺县| 潞西市| 聂荣县| 望都县| 文登市| 舞钢市| 宁阳县| 霍城县| 黑河市| 白水县| 英山县|