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

如何在springboot中引入?yún)?shù)校驗(yàn)

 更新時(shí)間:2023年12月09日 10:38:41   作者:grin : (0~.~0)  
一般我們判斷前端傳過來的參數(shù),需要對某些值進(jìn)行判斷,是否滿足條件,而springboot相關(guān)的參數(shù)校驗(yàn)注解,可以解決我們這個(gè)問題,本文給大家介紹如何在springboot中引入?yún)?shù)校驗(yàn),感興趣的朋友一起看看吧

一、概要

一般我們判斷前端傳過來的參數(shù),需要對某些值進(jìn)行判斷,是否滿足條件。

而springboot相關(guān)的參數(shù)校驗(yàn)注解,可以解決我們這個(gè)問題。

二、快速開始

首先,我用的springboot版本是  3.1.5 

引入?yún)?shù)校驗(yàn)相關(guān)依賴

<!--1.導(dǎo)入JSR303規(guī)范-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

定義實(shí)體類,并在實(shí)體類上加入相關(guān)注解。

public class Dept {
    private Integer id; //ID
    @NotNull
    private String name; //部門名稱
    private LocalDateTime createTime; //創(chuàng)建時(shí)間
    private LocalDateTime updateTime; //修改時(shí)間
}

在controller層  給需要校驗(yàn)的參數(shù)加上 @ Validated

  @PostMapping("/depts")
    public Result addDept( @RequestBody @Validated Dept dept){
        //這里應(yīng)該判斷是否返回成功
        deptService.addDept(dept);
        return Result.success();
    }

此時(shí)如果再進(jìn)行傳入?yún)?shù),如果name為null 就會(huì)報(bào)錯(cuò)。

三、額外補(bǔ)充

在前面我們談到了校驗(yàn)的基本用法,但在開發(fā)中,我需要對這些異常進(jìn)行統(tǒng)一處理,并返回符合相應(yīng)規(guī)則的返回值。

因此,需要用到全局異常處理。

讓gpt解答一下:

@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public ResponseEntity<ErrorResponse> handleValidationException(MethodArgumentNotValidException ex) {
        BindingResult bindingResult = ex.getBindingResult();
        List<String> errors = bindingResult.getFieldErrors().stream()
                .map(FieldError::getDefaultMessage)
                .collect(Collectors.toList());
        ErrorResponse response = new ErrorResponse("Validation Failed", errors);
        return ResponseEntity.badRequest().body(response);
    }
}

bindingResult.getAllErrors(); getFieldErrors() 有什么區(qū)別?

@RestController
@RequestMapping("/users")
public class UserController {
    @PostMapping
    public ResponseEntity<String> createUser(@Validated @RequestBody User user, BindingResult result) {
        if (result.hasErrors()) {
            // 獲取字段錯(cuò)誤列表
            List<FieldError> fieldErrors = result.getFieldErrors();
            // 遍歷字段錯(cuò)誤列表,輸出錯(cuò)誤信息
            for (FieldError error : fieldErrors) {
                String fieldName = error.getField();
                String errorMessage = error.getDefaultMessage();
                System.out.println("字段名:" + fieldName + ",錯(cuò)誤信息:" + errorMessage);
            }
            return ResponseEntity.badRequest().body("參數(shù)校驗(yàn)失敗");
        }
        // 校驗(yàn)通過,處理創(chuàng)建用戶的邏輯
        return ResponseEntity.ok("用戶創(chuàng)建成功");
    }
}

到此這篇關(guān)于如何在springboot中引入?yún)?shù)校驗(yàn)的文章就介紹到這了,更多相關(guān)springboot參數(shù)校驗(yàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring IOC 和 AOP 從入門到精通

    Spring IOC 和 AOP 從入門到精通

    本文將深入淺出地講解Spring框架的兩大核心特性——IOC(控制反轉(zhuǎn))和AOP(面向切面編程),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • Java中將byte[]轉(zhuǎn)MultipartFile的具體實(shí)現(xiàn)方式

    Java中將byte[]轉(zhuǎn)MultipartFile的具體實(shí)現(xiàn)方式

    將?byte[]轉(zhuǎn)換為?MultipartFile在處理文件上傳、微服務(wù)間數(shù)據(jù)傳輸或格式轉(zhuǎn)換等場景中非常有用,下面為您是幾種幾種主流的實(shí)現(xiàn)方式、代碼示例以及關(guān)鍵注意事項(xiàng),需要的朋友可以參考下
    2025-11-11
  • Spring Batch實(shí)戰(zhàn)示例

    Spring Batch實(shí)戰(zhàn)示例

    批量數(shù)據(jù)處理是一個(gè)非常常見的需求,比如月底的工資代發(fā)、銀行對賬、數(shù)據(jù)報(bào)表生成等,當(dāng)數(shù)據(jù)量達(dá)到幾十萬甚至上百萬時(shí),可以高效的完成,感興趣的可以了解一下
    2026-02-02
  • springboot項(xiàng)目之相互依賴報(bào)錯(cuò)問題(基于idea)

    springboot項(xiàng)目之相互依賴報(bào)錯(cuò)問題(基于idea)

    這篇文章主要介紹了springboot項(xiàng)目之相互依賴報(bào)錯(cuò)問題(基于idea),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java 多線程死鎖的產(chǎn)生以及如何避免死鎖

    Java 多線程死鎖的產(chǎn)生以及如何避免死鎖

    這篇文章主要介紹了Java 多線程死鎖的產(chǎn)生以及如何避免死鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java中try-catch的使用及注意細(xì)節(jié)

    Java中try-catch的使用及注意細(xì)節(jié)

    現(xiàn)在有很多的語言都支持try-catch,比如常見的就是c++,java等,這篇文章主要給大家介紹了關(guān)于Java中try-catch的使用及注意細(xì)節(jié)的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Java多線程下解決數(shù)據(jù)安全問題

    Java多線程下解決數(shù)據(jù)安全問題

    這篇文章主要介紹了Java多線程下解決數(shù)據(jù)安全問題,本文使用代碼進(jìn)行講解,可供大家學(xué)習(xí)參考
    2021-08-08
  • SpringMvc獲取頁面中的參數(shù)方法詳解

    SpringMvc獲取頁面中的參數(shù)方法詳解

    這篇文章主要介紹了SpringMvc獲取頁面中的參數(shù)方法詳解,獲取頁面的參數(shù)通常都是讓類實(shí)現(xiàn)設(shè)置HttpServletRequest request接口然后重寫接口中的方法的辦法來得到參數(shù),但是在Springmvc中有其他的獲取方法,需要的朋友可以參考下
    2023-10-10
  • Java?-jar運(yùn)行jar包時(shí)可添加參數(shù)示例詳解

    Java?-jar運(yùn)行jar包時(shí)可添加參數(shù)示例詳解

    這篇文章主要給大家介紹了Java?-jar運(yùn)行jar包時(shí)可添加參數(shù)的相關(guān)資料,包括設(shè)置JAR文件、系統(tǒng)屬性、JVM參數(shù)、Spring?Profiles、配置文件位置和名稱,以及傳遞給應(yīng)用程序的參數(shù),需要的朋友可以參考下
    2025-05-05
  • Java項(xiàng)目有中多個(gè)線程如何查找死鎖

    Java項(xiàng)目有中多個(gè)線程如何查找死鎖

    這篇文章主要介紹了Java項(xiàng)目有中多個(gè)線程如何查找死鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評(píng)論

南陵县| 舟曲县| 平利县| 文安县| 涞水县| 浦东新区| 琼中| 陆河县| 新巴尔虎右旗| 察雅县| 赞皇县| 南川市| 东海县| 江孜县| 永清县| 古交市| 买车| 永年县| 郁南县| 嘉鱼县| 涪陵区| 文登市| 余姚市| 江油市| 叶城县| 分宜县| 吴桥县| 新宁县| 南岸区| 四川省| 岫岩| 巴南区| 合山市| 大庆市| 金沙县| 聂荣县| 乌鲁木齐县| 个旧市| 盈江县| 中山市| 恩施市|