成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開(kāi)發(fā) 前端
根據(jù)具體的需求,選擇合適的注解來(lái)進(jìn)行參數(shù)校驗(yàn)是非常重要的。通過(guò)了解?@Valid?和?@Validated?之間的區(qū)別,特別是在嵌套校驗(yàn)方面的區(qū)別,您可以更好地掌握它們的使用方式,并在Spring Boot應(yīng)用程序中提供更準(zhǔn)確、可靠的參數(shù)校驗(yàn)功能。?

在Spring Boot中,@Valid和@Validated是常用的注解,用于參數(shù)校驗(yàn)和驗(yàn)證。盡管它們都用于驗(yàn)證參數(shù),但在嵌套校驗(yàn)方面,它們存在著一些關(guān)鍵的區(qū)別。本文將詳細(xì)介紹@Valid和@Validated之間的三個(gè)區(qū)別,并重點(diǎn)講述嵌套校驗(yàn)的區(qū)別,包括相應(yīng)的代碼和解析。

1. 校驗(yàn)級(jí)別

@Valid是Java標(biāo)準(zhǔn)的Bean Validation API的一部分,它提供了一種在方法參數(shù)、字段和方法級(jí)別上進(jìn)行校驗(yàn)的方式。它支持JSR-303和JSR-349規(guī)范,并且可以與Spring的Validator接口一起使用。

@Validated是Spring框架提供的注解,它是對(duì)@Valid的擴(kuò)展。它提供了更多的校驗(yàn)級(jí)別,包括方法參數(shù)和方法返回值的校驗(yàn)。

2. 校驗(yàn)?zāi)繕?biāo)

@Valid主要用于驗(yàn)證JavaBean對(duì)象的屬性。它可以用于驗(yàn)證請(qǐng)求參數(shù)、表單對(duì)象或任何帶有驗(yàn)證注解的JavaBean。

@Validated主要用于驗(yàn)證方法參數(shù)和方法返回值。它可以用于驗(yàn)證控制器的請(qǐng)求參數(shù)、服務(wù)方法的輸入?yún)?shù)和返回值。

3. 嵌套校驗(yàn)

嵌套校驗(yàn)是指對(duì)復(fù)合對(duì)象中的屬性進(jìn)行校驗(yàn),即驗(yàn)證對(duì)象中的對(duì)象。在嵌套校驗(yàn)中,@Valid和@Validated也存在一些區(qū)別。

@Valid的嵌套校驗(yàn)

使用@Valid進(jìn)行嵌套校驗(yàn)時(shí),被校驗(yàn)的對(duì)象的屬性上需要加上@Valid注解。這樣,在校驗(yàn)時(shí)會(huì)遞歸地進(jìn)行嵌套校驗(yàn)。

下面是一個(gè)使用@Valid進(jìn)行嵌套校驗(yàn)的示例:

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) {
   // 處理創(chuàng)建用戶的邏輯
   return ResponseEntity.ok("用戶創(chuàng)建成功");
}

在上面的示例中,當(dāng)請(qǐng)求參數(shù)中的User對(duì)象被傳遞到createUser方法時(shí),address屬性上的@Valid注解會(huì)觸發(fā)嵌套校驗(yàn),對(duì)User對(duì)象中的Address對(duì)象的屬性進(jìn)行校驗(yàn)。

@Validated的嵌套校驗(yàn)

與@Valid不同,@Validated不支持嵌套校驗(yàn)。如果在使用@Validated注解時(shí)出現(xiàn)嵌套校驗(yàn),需要使用@Valid注解替代。

下面是一個(gè)使用@Validated進(jìn)行嵌套校驗(yàn)的示例:

public class Address {
   @NotBlank(message = "街道不能為空")
   private String street;
   // 其他屬性省略
}

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

   @Valid
   private Address address;
   // 其他屬性省略
}

@Service
@Validated
public class UserService {
   public void createUser(@Valid User user) {
       // 處理創(chuàng)建用戶的邏輯
  }
}

在上面的示例中,UserService類中的createUser方法使用了@Validated注解,但是由于@Validated不支持嵌套校驗(yàn),所以在User對(duì)象上仍然需要使用@Valid注解來(lái)觸發(fā)嵌套校驗(yàn)。

總結(jié)

總的來(lái)說(shuō),@Valid和@Validated是Spring Boot中常用的參數(shù)校驗(yàn)注解。它們之間的三個(gè)主要區(qū)別是:

  1. 校驗(yàn)級(jí)別:@Valid支持JSR-303和JSR-349規(guī)范,適用于Bean Validation API;@Validated是Spring框架提供的擴(kuò)展,支持更多的校驗(yàn)級(jí)別。
  2. 校驗(yàn)?zāi)繕?biāo):@Valid主要用于驗(yàn)證JavaBean對(duì)象的屬性;@Validated主要用于驗(yàn)證方法參數(shù)和方法返回值。
  3. 嵌套校驗(yàn):@Valid支持嵌套校驗(yàn),可以遞歸地對(duì)復(fù)合對(duì)象中的屬性進(jìn)行校驗(yàn);@Validated不支持嵌套校驗(yàn),需要使用@Valid注解來(lái)觸發(fā)嵌套校驗(yàn)。

根據(jù)具體的需求,選擇合適的注解來(lái)進(jìn)行參數(shù)校驗(yàn)是非常重要的。通過(guò)了解@Valid和@Validated之間的區(qū)別,特別是在嵌套校驗(yàn)方面的區(qū)別,您可以更好地掌握它們的使用方式,并在Spring Boot應(yīng)用程序中提供更準(zhǔn)確、可靠的參數(shù)校驗(yàn)功能。

責(zé)任編輯:武曉燕 來(lái)源: 科學(xué)隨想錄
相關(guān)推薦

2023-03-03 16:38:28

JavaSpring框架

2022-09-27 07:31:57

Property模式數(shù)據(jù)

2023-11-06 07:37:01

函數(shù)式插槽React

2022-10-08 00:24:40

嵌套事務(wù)加入事務(wù)事務(wù)

2024-08-28 13:09:50

2022-07-27 08:31:28

SQL開(kāi)發(fā)控制

2024-10-28 08:26:55

SpringAI語(yǔ)言模型1. 多模型

2022-12-30 08:35:00

2022-04-07 11:15:22

PulseEventAPI函數(shù)

2022-05-06 09:21:21

TypeScriptinterfacetype

2023-12-08 08:38:15

EventLoopAPI瀏覽器

2022-10-10 18:38:56

inert屬性鍵盤

2022-07-11 09:00:37

依賴配置文件Mybati

2023-06-09 07:18:03

開(kāi)源數(shù)據(jù)庫(kù)

2022-05-18 08:17:24

Java原子變量

2023-12-28 08:43:28

前端算法搜索

2024-01-08 20:05:32

2022-10-19 08:19:32

動(dòng)態(tài)基線預(yù)警

2023-10-27 07:39:44

IOC容器Spring

2023-11-27 00:48:46

displayvisibility
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一区二区三区欧美大片 | avav在线看 | 国产精品久久久免费 | 久久亚洲一区二区 | 国内自拍偷拍一区 | 波多野结衣一区二区三区 | 欧美在线观看一区 | 亚洲欧美激情精品一区二区 | 久久久久久久一级 | 中文字幕成人在线 | av中文字幕在线播放 | 日日夜夜操天天干 | 欧美色影院 | 欧美成人精品欧美一级 | 国产一区二区三区在线视频 | 国产aⅴ爽av久久久久久久 | 一本综合久久 | 曰韩一二三区 | 亚洲三区视频 | av午夜电影| 国产精品永久免费视频 | 国产黄色麻豆视频 | 久久久久国产精品一区二区 | 国产精品久久久久久久久久免费看 | 国产精品久久9 | 在线看av网址 | 日韩电影一区二区三区 | 国产免费福利 | 亚洲国产精品久久久久秋霞不卡 | 国产日产久久高清欧美一区 | 视频一区二区在线观看 | 国产精品国产a级 | 国产精品国产精品 | 亚洲色欲色欲www | 精品亚洲一区二区 | 成人一区二区在线 | 国产色在线 | 国产在线精品一区二区三区 | 国产成人av一区二区三区 | 成人av播放 | 午夜免费视频 |