国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot常用的參數(shù)驗證技巧和使用方法

這篇具有很好參考價值的文章主要介紹了Spring Boot常用的參數(shù)驗證技巧和使用方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡介

Spring Boot是一個使用Java編寫的開源框架,用于快速構建基于Spring的應用程序。在實際開發(fā)中,經常需要對輸入參數(shù)進行驗證,以確保數(shù)據(jù)的完整性和準確性。Spring Boot提供了多種方式來進行參數(shù)驗證,并且可以很方便地集成到應用程序中。

1. 使用JSR-303注解進行參數(shù)驗證

JSR-303是Java Validation API的規(guī)范之一,它定義了一套用于參數(shù)驗證的注解。Spring Boot支持使用這些注解來驗證方法參數(shù)、請求參數(shù)和實體類字段等。

@RestController
public class UserController {

    @PostMapping("/user")
    public ResponseEntity<String> createUser(@Valid @RequestBody UserRequest request) {
        // 處理請求
        return ResponseEntity.ok("User created successfully");
    }
}

在上面的例子中,@Valid注解用于標記需要驗證的參數(shù),@RequestBody注解用于指定該參數(shù)為請求體。而UserRequest則是一個自定義的實體類,使用了JSR-303注解來驗證字段。

public class UserRequest {

    @NotBlank(message = "用戶名不能為空")
    private String username;

    @Size(min = 6, max = 12, message = "密碼長度必須在6到12個字符之間")
    private String password;
    
    // getter 和 setter 方法省略
}

UserRequest類中,我們使用了@NotBlank注解來驗證username字段不能為空,使用了@Size注解來驗證password字段的長度在6到12個字符之間。當參數(shù)驗證失敗時,框架會自動拋出MethodArgumentNotValidException異常,并返回相應的錯誤信息。

2. 使用自定義驗證器

除了使用JSR-303注解外,你還可以編寫自己的參數(shù)驗證器。這對于一些特殊的驗證需求,或者需要復雜邏輯的驗證場景非常有用。

@Component
public class AgeValidator implements ConstraintValidator<ValidAge, Integer> {

    @Override
    public boolean isValid(Integer age, ConstraintValidatorContext context) {
        // 實現(xiàn)自定義的驗證邏輯
        return age >= 18 && age <= 60;
    }
}

首先,我們需要編寫一個實現(xiàn)了ConstraintValidator接口的驗證器類。在上面的例子中,我們定義了一個AgeValidator類,用于驗證年齡是否在合法范圍內(18到60歲)。然后,我們需要在需要驗證的地方使用@ValidAge注解來標記需要驗證的參數(shù)。

@RestController
public class UserController {

    @PostMapping("/user")
    public ResponseEntity<String> createUser(@ValidAge @RequestParam("age") Integer age) {
        // 處理請求
        return ResponseEntity.ok("User created successfully");
    }
}

在上述代碼中,我們使用了@ValidAge注解來驗證age參數(shù)的合法性。當參數(shù)驗證失敗時,框架會自動拋出MethodArgumentNotValidException異常,并返回相應的錯誤信息。

3. 自定義驗證錯誤處理

除了使用框架提供的默認錯誤處理方式外,你還可以定制化錯誤處理??梢酝ㄟ^編寫全局異常處理器來對參數(shù)驗證失敗時的異常進行捕獲和處理。

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public ResponseEntity<String> handleMethodArgumentNotValid(MethodArgumentNotValidException ex) {
        BindingResult result = ex.getBindingResult();
        List<ObjectError> errors = result.getAllErrors();
        
        StringBuilder errorMessage = new StringBuilder();
        for (ObjectError error : errors) {
            errorMessage.append(error.getDefaultMessage()).append("; ");
        }

        return ResponseEntity.badRequest().body(errorMessage.toString());
    }
}

在上述代碼中,我們使用@ControllerAdvice注解將該類聲明為全局異常處理器,并使用@ExceptionHandler注解來指定處理MethodArgumentNotValidException異常。當參數(shù)驗證失敗時,會自動進入到這個處理方法中,我們可以從異常對象中獲取詳細的錯誤信息并進行處理。

結論

Spring Boot提供了多種靈活且強大的參數(shù)驗證技巧和使用方法,包括使用JSR-303注解進行參數(shù)驗證、自定義驗證器以及自定義驗證錯誤處理等。通過合理地運用這些技巧,我們可以保證應用程序接收到正確且完整的參數(shù)輸入,提高系統(tǒng)的穩(wěn)定性和安全性。文章來源地址http://www.zghlxwxcb.cn/news/detail-706207.html

到了這里,關于Spring Boot常用的參數(shù)驗證技巧和使用方法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Spring Boot請求處理-常用參數(shù)注解

    Spring Boot請求處理-常用參數(shù)注解

    @PathVariable 路徑變量 @RequestParam 獲取請求參數(shù) @RequestHeader 獲取請求頭 @RequestBody 獲取請求體【Post】 @CookieValue 獲取Cookie值 RequestAttribute 獲取request域屬性 @ModelAttribute 1. @PathVariable 該注解主要用于rest風格的搭配使用,請求路徑中不再以 k:v 的形式給出請求參數(shù)和值;而是直接給定

    2024年02月10日
    瀏覽(30)
  • Spring Boot接收從前端傳過來的數(shù)據(jù)常用方式以及處理的技巧

    Spring Boot接收從前端傳過來的數(shù)據(jù)常用方式以及處理的技巧

    前端傳遞過來的數(shù)據(jù)類型,老師這里會把它分為兩個主要的方向: 第1個方向:非json格式的數(shù)據(jù) 第2個方向:json格式的數(shù)據(jù) 非json格式的數(shù)據(jù) 方式1 :直接可以將控制層方法的參數(shù)名稱和請求的參數(shù)名稱保持一致來進行接收。 場景:數(shù)據(jù)量(參數(shù)個數(shù))比較小,=3個參數(shù) 優(yōu)點

    2024年02月01日
    瀏覽(25)
  • spring管理的bean在靜態(tài)方法使用技巧——@PostConstruct

    ????????如果我們使用正常的 @Component 注解將一個類交由spring管理,然后在使用的時候用@Resource注入對象,在沒有碰到靜態(tài)方法的時候,是不會出現(xiàn)問題,但是如果出現(xiàn)了靜態(tài)方法,這樣的使用方法就會出現(xiàn) 空指針的異常 ,也就是你@Resource注入的對象是空 ????????一

    2024年02月10日
    瀏覽(22)
  • Spring Boot中KafkaListener的介紹、原理和使用方法

    Spring Boot中KafkaListener的介紹、原理和使用方法

    Kafka是一個高性能的分布式消息隊列,它被廣泛應用于對實時數(shù)據(jù)進行處理和分析。在Spring Boot中,我們可以通過 @KafkaListener 注解來監(jiān)聽并處理Kafka消息。本文將介紹Spring Boot中 @KafkaListener 注解的介紹、原理和使用方法。 @KafkaListener 注解是Spring Kafka提供的一種消費消息的方式

    2024年02月10日
    瀏覽(34)
  • spring boot中常用的安全框架 Security框架 利用Security框架實現(xiàn)用戶登錄驗證token和用戶授權(接口權限控制)

    spring boot中常用的安全框架 Security框架 利用Security框架實現(xiàn)用戶登錄驗證token和用戶授權(接口權限控制)

    spring boot中常用的安全框架 Security 和 Shiro 框架 Security 兩大核心功能 認證 和 授權 重量級 Shiro 輕量級框架 不限于web 開發(fā) 在不使用安全框架的時候 一般我們利用過濾器和 aop自己實現(xiàn) 權限驗證 用戶登錄 Security 實現(xiàn)邏輯 輸入用戶名和密碼 提交 把提交用戶名和密碼封裝對象

    2024年02月06日
    瀏覽(28)
  • 使用Spring Boot和JPA實現(xiàn)多數(shù)據(jù)源的方法

    使用Spring Boot和JPA實現(xiàn)多數(shù)據(jù)源的方法: 添加相關依賴:在pom.xml文件中添加Spring Boot和JPA的依賴項,例如Spring Boot Starter Data JPA和相應的數(shù)據(jù)庫驅動。 配置數(shù)據(jù)源:在application.properties(或application.yml)文件中,配置多個數(shù)據(jù)源的連接信息,如數(shù)據(jù)庫URL、用戶名和密碼。 創(chuàng)建數(shù)

    2024年01月21日
    瀏覽(70)
  • Spring Cache的介紹以及使用方法、常用注解

    Spring Cache是一個框架,實現(xiàn)了基于注解的緩存功能,只需要簡單地加一個注解,就能實現(xiàn)緩存功能. Spring Cache提供了一層抽象,底層可以切換不同的cache實現(xiàn)。具體就是通過CacheManager接口來統(tǒng)一不同的緩存技術。 CacheManager是Spring提供的各種緩存技術抽象接口。 針對不同的緩存

    2024年02月16日
    瀏覽(37)
  • 在 Spring Boot 應用程序中將 MapStruct 與 Lombok 結合使用的方法

    在本文中,您將找到有關如何高效使用 MapStruct、Lombok 和 Spring Boot 的代碼示例和說明。 ????????當您實現(xiàn)任何規(guī)模的服務時,您通常需要將數(shù)據(jù)從一種結構移動到另一種結構。通常,這是在不同邏輯層使用的相同數(shù)據(jù) - 在業(yè)務邏輯、數(shù)據(jù)庫級別或用于傳輸?shù)角岸藨贸绦?/p>

    2024年02月14日
    瀏覽(22)
  • Spring Boot 使用validation校驗參數(shù)

    在看公司代碼的時候,發(fā)現(xiàn)是用了 Spring Boot Validation 去檢驗參數(shù)的,但是后面又在代碼里去檢驗參數(shù)去了,而且這個 Spring Boot Validation 校驗好像并不生效。于是自己摸索研究了一下。 雖然項目使用的校驗都是 javax.validation ,但是不引入這個依賴他是真的不生效。 gradle如下:

    2024年01月25日
    瀏覽(26)
  • 【Python beautifulsoup】詳細介紹beautifulsoup庫的使用方法,包括安裝方式、基本用法、常用方法和技巧,以及結合lxml和parsel的具體使用場景和區(qū)別。

    【Python beautifulsoup】詳細介紹beautifulsoup庫的使用方法,包括安裝方式、基本用法、常用方法和技巧,以及結合lxml和parsel的具體使用場景和區(qū)別。

    Python beautifulsoup庫是一個強大的Web抓取和解析庫,它提供了豐富的功能和簡單易用的API,可以幫助我們處理HTML和XML文檔,從中提取數(shù)據(jù),進行數(shù)據(jù)清洗和處理。beautifulsoup庫基于Python標準庫中的html.parser模塊,同時還可以與第三方解析庫lxml和parsel配合使用,提供更高效和靈活的

    2024年02月04日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包