日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Spring Boot中@Valid和@Validated的區別,你明白了嗎?

來源: 責編: 時間:2024-02-04 09:02:47 251觀看
導讀在Spring Boot中,@Valid和@Validated是常用的注解,用于參數校驗和驗證。盡管它們都用于驗證參數,但在嵌套校驗方面,它們存在著一些關鍵的區別。本文將詳細介紹@Valid和@Validated之間的三個區別,并重點講述嵌套校驗的區別,

在Spring Boot中,@Valid和@Validated是常用的注解,用于參數校驗和驗證。盡管它們都用于驗證參數,但在嵌套校驗方面,它們存在著一些關鍵的區別。本文將詳細介紹@Valid和@Validated之間的三個區別,并重點講述嵌套校驗的區別,包括相應的代碼和解析。BdH28資訊網——每日最新資訊28at.com

1. 校驗級別

@Valid是Java標準的Bean Validation API的一部分,它提供了一種在方法參數、字段和方法級別上進行校驗的方式。它支持JSR-303和JSR-349規范,并且可以與Spring的Validator接口一起使用。BdH28資訊網——每日最新資訊28at.com

@Validated是Spring框架提供的注解,它是對@Valid的擴展。它提供了更多的校驗級別,包括方法參數和方法返回值的校驗。BdH28資訊網——每日最新資訊28at.com

2. 校驗目標

@Valid主要用于驗證JavaBean對象的屬性。它可以用于驗證請求參數、表單對象或任何帶有驗證注解的JavaBean。BdH28資訊網——每日最新資訊28at.com

@Validated主要用于驗證方法參數和方法返回值。它可以用于驗證控制器的請求參數、服務方法的輸入參數和返回值。BdH28資訊網——每日最新資訊28at.com

3. 嵌套校驗

嵌套校驗是指對復合對象中的屬性進行校驗,即驗證對象中的對象。在嵌套校驗中,@Valid和@Validated也存在一些區別。BdH28資訊網——每日最新資訊28at.com

@Valid的嵌套校驗

使用@Valid進行嵌套校驗時,被校驗的對象的屬性上需要加上@Valid注解。這樣,在校驗時會遞歸地進行嵌套校驗。BdH28資訊網——每日最新資訊28at.com

下面是一個使用@Valid進行嵌套校驗的示例:BdH28資訊網——每日最新資訊28at.com

public class Address {   @NotBlank(message = "街道不能為空")   private String street;   // 其他屬性省略}public class User {   @NotBlank(message = "用戶名不能為空")   private String username;   @Valid   private Address address;   // 其他屬性省略}@PostMapping("/user")public ResponseEntity<String> createUser(@RequestBody @Valid User user) {   // 處理創建用戶的邏輯   return ResponseEntity.ok("用戶創建成功");}

在上面的示例中,當請求參數中的User對象被傳遞到createUser方法時,address屬性上的@Valid注解會觸發嵌套校驗,對User對象中的Address對象的屬性進行校驗。BdH28資訊網——每日最新資訊28at.com

@Validated的嵌套校驗

與@Valid不同,@Validated不支持嵌套校驗。如果在使用@Validated注解時出現嵌套校驗,需要使用@Valid注解替代。BdH28資訊網——每日最新資訊28at.com

下面是一個使用@Validated進行嵌套校驗的示例:BdH28資訊網——每日最新資訊28at.com

public class Address {   @NotBlank(message = "街道不能為空")   private String street;   // 其他屬性省略}public class User {   @NotBlank(message = "用戶名不能為空")   private String username;   @Valid   private Address address;   // 其他屬性省略}@Service@Validatedpublic class UserService {   public void createUser(@Valid User user) {       // 處理創建用戶的邏輯  }}

在上面的示例中,UserService類中的createUser方法使用了@Validated注解,但是由于@Validated不支持嵌套校驗,所以在User對象上仍然需要使用@Valid注解來觸發嵌套校驗。BdH28資訊網——每日最新資訊28at.com

總結

總的來說,@Valid和@Validated是Spring Boot中常用的參數校驗注解。它們之間的三個主要區別是:BdH28資訊網——每日最新資訊28at.com

  1. 校驗級別:@Valid支持JSR-303和JSR-349規范,適用于Bean Validation API;@Validated是Spring框架提供的擴展,支持更多的校驗級別。
  2. 校驗目標:@Valid主要用于驗證JavaBean對象的屬性;@Validated主要用于驗證方法參數和方法返回值。
  3. 嵌套校驗:@Valid支持嵌套校驗,可以遞歸地對復合對象中的屬性進行校驗;@Validated不支持嵌套校驗,需要使用@Valid注解來觸發嵌套校驗。

根據具體的需求,選擇合適的注解來進行參數校驗是非常重要的。通過了解@Valid和@Validated之間的區別,特別是在嵌套校驗方面的區別,您可以更好地掌握它們的使用方式,并在Spring Boot應用程序中提供更準確、可靠的參數校驗功能。BdH28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-72436-0.htmlSpring Boot中@Valid和@Validated的區別,你明白了嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 2024 年十大 Vue.js UI 庫

下一篇: 日志分析系統Loki使用指南

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 嘉祥县| 嘉鱼县| 荣成市| 正定县| 洮南市| 万全县| 织金县| 眉山市| 左云县| 深水埗区| 康定县| 新沂市| 雅江县| 武邑县| 大名县| 乌恰县| 辽阳市| 三河市| 贵定县| 东宁县| 拉萨市| 南郑县| 长白| 平远县| 泽普县| 武宣县| 玉门市| 丁青县| 罗甸县| 北京市| 唐山市| 汉沽区| 花垣县| 木兰县| 循化| 江山市| 湖口县| 平顶山市| 乡城县| 南江县| 留坝县|