欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot使用@NotEmpty、@NotBlank、@NotNull注解進行參數(shù)校驗

 更新時間:2024年08月18日 14:42:51   作者:CodeDunkster  
我們經(jīng)常需要對請求參數(shù)進行校驗,本文主要介紹了SpringBoot使用@NotEmpty、@NotBlank、@NotNull注解進行參數(shù)校驗,具有一定的參考價值,感興趣的可以了解一下

在 Spring Boot 項目中,我們經(jīng)常需要對請求參數(shù)進行校驗,以確保其符合預期的格式和內(nèi)容。Spring 提供了一些注解來簡化參數(shù)校驗的工作,其中包括 @NotEmpty、@NotBlank 和 @NotNull。在本文中,我們將學習如何使用這些注解來進行參數(shù)校驗,并解釋為什么要使用它們。

1. 導入依賴

首先,在 pom.xml 文件中添加以下 Maven 依賴:

xmlCopy code
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

這將導入 Spring Boot 提供的參數(shù)校驗功能所需的依賴。

2. 使用 @NotEmpty、@NotBlank、@NotNull

  • @NotEmpty:用于檢查集合或數(shù)組等對象是否為 null 或空。該注解通常用于檢查字符串是否為空,集合是否為空等情況。
  • @NotBlank:用于檢查字符串是否不為空,并且去除首尾空格后長度大于 0。該注解通常用于檢查用戶輸入的字符串是否為有效值。
  • @NotNull:用于檢查對象(包裝類:Integer、Boolean等)是否不為 null。該注解通常用于檢查對象是否已經(jīng)被初始化。

3. 增加 @Validated 注解

為了讓參數(shù)校驗注解生效,我們需要在 Controller 或 Service 類上添加 @Validated 注解。

4. 示例

假設我們有一個簡單的 Controller 處理器,用于接收用戶的注冊請求,并需要對用戶名和密碼進行校驗:

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Validated
public class UserController {

    @PostMapping("/register")
    public String registerUser(@Valid @RequestBody UserDTO userDTO) {
        // 處理用戶注冊邏輯
        return "User registered successfully!";
    }

    public static class UserDTO {
        @NotBlank(message = "用戶名不能為空")
        private String username;

        @NotBlank(message = "密碼不能為空")
        private String password;

        // 省略 getter 和 setter 方法
    }
}

在上面的示例中,我們定義了一個 UserDTO 類用于接收用戶注冊的請求參數(shù)。通過在 username 和 password 字段上添加 @NotBlank 注解,我們要求這兩個字段不能為空,并且不允許只包含空格。同時,在 UserController 類上添加了 @Validated 注解,以確保參數(shù)校驗生效。

5. 為什么使用 @NotEmpty、@NotBlank、@NotNull

  • 提高代碼健壯性:通過對參數(shù)進行校驗,可以有效地防止空指針異常或無效輸入帶來的問題,提高系統(tǒng)的穩(wěn)定性和安全性。
  • 提升開發(fā)效率:使用這些注解可以減少手動編寫參數(shù)校驗邏輯的工作量,提高開發(fā)效率,同時使代碼更加清晰易讀。
  • 統(tǒng)一規(guī)范:采用注解方式進行參數(shù)校驗可以使代碼規(guī)范化,降低維護成本,并且有利于團隊間的協(xié)作與交流。

6.全局異常處理器

在 Spring Boot 中,如果參數(shù)校驗失敗,將會拋出 MethodArgumentNotValidException 異常或 ConstraintViolationException 異常。為了統(tǒng)一處理這些異常,可以定義一個全局異常處理器。

下面是一個簡單的全局異常處理器示例:

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.MethodArgumentNotValidException;

@ControllerAdvice
public class GlobalExceptionHandler {

	@ExceptionHandler(MethodArgumentNotValidException.class)
	public ResponseEntity<String> handleValidationExceptions(MethodArgumentNotValidException ex) {
    return new ResponseEntity<>("Invalid request: " + ex.getMessage(), HttpStatus.BAD_REQUEST);
  }

// 可以添加其他異常處理方法
}

在上面的示例中,handleValidationExceptions 方法用于處理參數(shù)校驗異常 MethodArgumentNotValidException,并返回一個包含錯誤信息的 ResponseEntity 對象。

通過定義全局異常處理器,可以集中處理所有控制器中拋出的參數(shù)校驗異常,并向客戶端返回統(tǒng)一的錯誤信息,提高了代碼的可維護性和可重用性。

總結(jié)

在 Spring Boot 中使用參數(shù)校驗注解可以方便地對用戶傳入的參數(shù)進行校驗,保證數(shù)據(jù)的有效性和安全性。同時,通過定義全局異常處理器,可以統(tǒng)一處理所有的參數(shù)校驗異常,提高了代碼的健壯性和可維護性。

到此這篇關于SpringBoot使用@NotEmpty、@NotBlank、@NotNull注解進行參數(shù)校驗的文章就介紹到這了,更多相關SpringBoot注解參數(shù)校驗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring Cloud Ribbon的踩坑記錄與原理詳析

    Spring Cloud Ribbon的踩坑記錄與原理詳析

    這篇文章主要給大家介紹了關于Spring Cloud Ribbon踩坑記錄與原理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10
  • 深入理解Java設計模式之外觀模式

    深入理解Java設計模式之外觀模式

    這篇文章主要介紹了JAVA設計模式之外觀模式的的相關資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2021-11-11
  • maven如何在tomcat8中實現(xiàn)自動部署

    maven如何在tomcat8中實現(xiàn)自動部署

    本篇文章主要介紹了maven如何在tomcat8中實現(xiàn)自動部署,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • spring整合shiro框架的實現(xiàn)步驟記錄

    spring整合shiro框架的實現(xiàn)步驟記錄

    Shiro是一個強大易用的Java安全框架,提供了認證、授權(quán)、加密和會話管理等功能。下面這篇文章主要給大家介紹了關于spring整合shiro框架的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-05-05
  • Java(若依)如何讀取Yml配置文件

    Java(若依)如何讀取Yml配置文件

    文章介紹了如何在Java若依框架中讀取Yml配置文件,包括定義配置字段、編寫讀取工具類以及注意事項,最后總結(jié)了個人經(jīng)驗
    2025-02-02
  • Java中的裝箱和拆箱深入理解

    Java中的裝箱和拆箱深入理解

    裝箱和拆箱是java中老生常談的問題,下面小編通過本文給大家介紹java裝箱和拆箱最基本的東西,感興趣的朋友一起看下吧
    2016-07-07
  • Java實現(xiàn)XML格式與JSON格式互相轉(zhuǎn)換的方法

    Java實現(xiàn)XML格式與JSON格式互相轉(zhuǎn)換的方法

    這篇文章主要介紹了Java實現(xiàn)XML格式與JSON格式互相轉(zhuǎn)換的方法,方法通過實例代碼給大家介紹的非常詳細,選擇使用哪種格式通常取決于項目的需求和上下文,所以格式轉(zhuǎn)換就成了我們必備的技能,具體實現(xiàn)代碼跟隨小編一起看看吧
    2023-10-10
  • 詳解利用SpringCloud搭建一個最簡單的微服務框架

    詳解利用SpringCloud搭建一個最簡單的微服務框架

    這篇文章主要介紹了詳解利用SpringCloud搭建一個最簡單的微服務框架,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Java都有哪些創(chuàng)建線程的方法

    Java都有哪些創(chuàng)建線程的方法

    這篇文章主要介紹了Java都有哪些創(chuàng)建線程的方法,文章分享Java創(chuàng)建線程得幾種方法及推薦使用哪種方法,下面詳細內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • java實現(xiàn)微信公眾平臺發(fā)送模板消息的示例代碼

    java實現(xiàn)微信公眾平臺發(fā)送模板消息的示例代碼

    這篇文章主要介紹了java實現(xiàn)微信公眾平臺發(fā)送模板消息的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09

最新評論