国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Spring Boot進行優雅的字段校驗,寫得太好了!

開發 后端
前段時間提交代碼審核,同事提了一個代碼規范缺陷:參數校驗應該放在controller層。到底應該如何做參數校驗呢?

前段時間提交代碼審核,同事提了一個代碼規范缺陷:參數校驗應該放在controller層。到底應該如何做參數校驗呢? 

Controller層 VS Service層

去網上查閱了一些資料,一般推薦與業務無關的放在Controller層中進行校驗,而與業務有關的放在Service層中進行校驗。

那么如何將參數校驗寫的優雅美觀呢,如果都是if - else,就感覺代碼寫的很low,還好有輪子可以使用

常用校驗工具類

使用Hibernate Validate

引入依賴

  1. <dependency> 
  2.     <groupId>org.hibernate</groupId> 
  3.     <artifactId>hibernate-validator</artifactId> 
  4.     <version>4.3.1.Final</version>  
  5. </dependency> 

常用注解說明 

 

使用姿勢

Spring Boot 基礎就不介紹了,推薦下這個實戰教程:

https://github.com/javastacks/spring-boot-best-practice

需要搭配在Controller中搭配@Validated或@Valid注解一起使用,@Validated和@Valid注解區別不是很大,一般情況下任選一個即可,區別如下:

 

雖然@Validated比@Valid更加強大,在@Valid之上提供了分組功能和驗證排序功能,不過在實際項目中一直沒有用到過

Hibernate-validate框架中的注解是需要加在實體中一起使用的

定義一個實體 

  1. public class DataSetSaveVO { 
  2.     //唯一標識符為空 
  3.     @NotBlank(message = "user uuid is empty"
  4.     //用戶名稱只能是字母和數字 
  5.     @Pattern(regexp = "^[a-z0-9]+$", message = "user names can only be alphabetic and numeric"
  6.     @Length(max = 48, message = "user uuid length over 48 byte"
  7.     private String userUuid; 
  8.  
  9.     //數據集名稱只能是字母和數字 
  10.     @Pattern(regexp = "^[A-Za-z0-9]+$", message = "data set names can only be letters and Numbers"
  11.     //文件名稱過長 
  12.     @Length(max = 48, message = "file name too long"
  13.     //文件名稱為空 
  14.     @NotBlank(message = "file name is empty"
  15.     private String name
  16.  
  17.     //數據集描述最多為256字節 
  18.     @Length(max = 256, message = "data set description length over 256 byte"
  19.     //數據集描述為空 
  20.     @NotBlank(message = "data set description is null"
  21.     private String description; 

說明:message字段為不符合校驗規則時拋出的異常信息

Controller層中的方法 

  1. @PostMapping 
  2. public ResponseVO createDataSet(@Valid @RequestBody DataSetSaveVO dataSetVO) { 
  3.     return ResponseUtil.success(dataSetService.saveDataSet(dataSetVO)); 

說明:在校驗的實體DataSetSaveVO旁邊添加@Valid或@Validated注解。

使用commons-lang3

引入依賴

  1. <dependency> 
  2.     <groupId>org.apache.commons</groupId> 
  3.     <artifactId>commons-lang3</artifactId> 
  4.     <version>3.4</version> 
  5. </dependency> 

常用方法說明 

 

測試代碼

  1. //StringUtils.isEmpty 
  2. System.out.println(StringUtils.isEmpty(""));  //true 
  3. System.out.println(StringUtils.isEmpty("  "));  //false 
  4. //StringUtils.isNotEmpty 
  5. System.out.println(StringUtils.isNotEmpty(""));  //false 
  6.          
  7. //StringUtils.isBlank 
  8. System.out.println(StringUtils.isBlank(""));  //true 
  9. System.out.println(StringUtils.isBlank(" "));  //true 
  10. //StringUtils.isNotBlank 
  11. System.out.println(StringUtils.isNotBlank(" "));  //false 
  12.  
  13. List<Integer> emptyList = new ArrayList<>(); 
  14. List<Integer> nullList = null
  15. List<Integer> notEmptyList = new ArrayList<>(); 
  16. notEmptyList.add(1); 
  17.  
  18. //CollectionUtils.isEmpty 
  19. System.out.println(CollectionUtils.isEmpty(emptyList));   //true 
  20. System.out.println(CollectionUtils.isEmpty(nullList));   //true 
  21. System.out.println(CollectionUtils.isEmpty(notEmptyList));   //false 
  22.  
  23. //CollectionUtils.isNotEmpty 
  24. System.out.println(CollectionUtils.isNotEmpty(emptyList));   //false 
  25. System.out.println(CollectionUtils.isNotEmpty(nullList));   //false 
  26. System.out.println(CollectionUtils.isNotEmpty(notEmptyList));   //true 

自定義注解

當上面的方面都無法滿足校驗的需求以后,可以考慮使用自定義注解。

 

責任編輯:龐桂玉 來源: Java技術棧
相關推薦

2020-07-29 10:40:21

Spring循環依賴Java

2020-05-07 10:05:58

Spring循環依賴Java

2021-06-25 09:47:59

Spring循環依賴Java

2018-09-21 15:50:58

數據庫MySQL分庫分表

2019-10-17 09:26:05

MySQL數據庫InnoDB

2019-09-29 10:04:26

技術編程開發

2021-06-21 15:57:08

微服務架構數據

2020-11-12 07:43:06

Redis冪等性接口

2021-10-27 09:55:55

Sharding-Jd分庫分表Java

2020-06-18 11:58:13

蘋果MacOS保密

2021-11-10 10:03:18

SpringBootJava代碼

2020-09-09 09:55:36

JavaNIOBIO

2022-01-04 09:53:37

Python多線程多進程

2024-12-06 09:27:28

2020-10-18 07:24:16

數字證書簽名網絡協議

2020-04-10 08:28:44

數據裁員行業

2025-07-14 02:00:00

2025-04-10 00:22:22

Spring@JsonView字段

2021-08-12 10:32:50

Spring Boot參數校驗分組校驗

2021-08-10 15:11:27

Spring Boot參數校驗
點贊
收藏

51CTO技術棧公眾號

国产精品三区四区| 国产美女网站在线观看| 亚洲综合视频| 欧美日韩亚洲一区二区| 亚洲人精品午夜射精日韩| 亚洲美女色禁图| 成人精品视频在线| 国产精品欧美日韩一区| 亚洲a在线视频| 欧美国产日韩免费| 懂色aⅴ精品一区二区三区| 欧洲精品在线观看| 少妇性bbb搡bbb爽爽爽欧美| 亚洲天堂免费在线观看视频| 欧美牲交a欧美牲交aⅴ免费下载| 国产寡妇亲子伦一区二区| 中文字幕中文字幕一区三区| 日本欧洲一区二区| 天天综合色天天综合色hd| 亚洲综合二区| 日韩精品福利视频| 男女男精品视频| 视频一区二区三区免费观看| 天堂av在线一区| 日韩欧美视频一区二区| 欧美一级专区| 日本一区二区视频| 久久精品国产99国产精品| 先锋影音日韩| 韩国一区二区三区| 红桃一区二区三区| 成人污污视频在线观看| 成人免费在线小视频| 91年精品国产| 国产精品久久久毛片| 18成人在线观看| 91网页在线看| 欧美视频精品在线| 国产第一页在线视频| 国产午夜精品免费一区二区三区 | 韩国日本不卡在线| 亚洲精品一级二级三级| 91日韩在线视频| 久久九九免费| 韩国无码av片在线观看网站| 91毛片在线观看| 影院免费视频| 欧美色爱综合网| 国内精品久久国产| 欧美视频一区二区三区…| 久久久久久久久久久久久女国产乱| 国产精选一区二区| 成人自拍视频网| 欧美精品一区二区三区高清aⅴ | 国产亚洲精品v| 婷婷久久青草热一区二区| 91久久线看在观草草青青| 日韩有码电影| 国产精品视频免费观看| 久久久噜噜噜久噜久久综合| 色一情一区二区三区四区| 日韩av高清在线观看| 亚洲精品一区二区三| 日韩电影二区| 欧美孕妇性xxxⅹ精品hd| 欧美伊人久久| 午夜伦理福利在线| 欧洲成人一区二区| 国产成人综合视频| 天堂а√在线中文在线| 久久无码av三级| 一区二区三区不卡在线视频| 日韩精品一区二区三区视频在线观看 | 最新日韩av在线| 中文字幕中文字幕在线中文字幕三区 | 99精品免费视频| 久久这里只有精品23| 夜夜嗨av一区二区三区四季av| 99在线视频观看| 2020久久国产精品| 国产美女精品| 色综合天天色综合| 在线看国产一区二区| 999色成人| 久久国产精品一区二区三区| 久久综合一区二区| av免费在线一区二区三区| x99av成人免费| 好看的av在线不卡观看| 成人一区二区三| 精品日韩成人av| 国产伦精品一区二区三区千人斩| 亚洲国产精品影视| 天天爽夜夜爽夜夜爽精品视频| 在线天堂资源| 波多野结衣精品久久| 亚洲国产成人一区二区三区| 91九色porn在线资源| 国产91亚洲精品一区二区三区| 免费观看成人性生生活片 | www一区二区三区| 国产有色视频色综合| 久久激五月天综合精品| 国产高清在线看| 国产亚洲精久久久久久| 伊人免费在线| 国产成人自拍视频在线观看| 成人av影院在线| 理论片午夜视频在线观看| 亚洲自拍av在线| 国产精品久久久久久一区二区三区| 亚洲深夜视频| 日产精品一线二线三线芒果| 色哟哟一区二区| 欧美一区二区麻豆红桃视频| 三级a三级三级三级a十八发禁止| 亚洲精品永久免费精品| 久久亚洲不卡| 免费在线看a| 亚洲已满18点击进入在线看片| 中文字幕在线不卡国产视频| 日韩黄色三级| 久久综合久久久久| 日韩黄色高清视频| 欧美aⅴ一区二区三区视频| 一区二区高清不卡| 98国产高清一区| 一区二区三区波多野结衣在线观看| 精品亚洲a∨一区二区三区18| 无码人妻精品一区二区蜜桃网站| 亚洲男女性事视频| 国产一区二区三区不卡在线观看| av日韩国产| 熟妇熟女乱妇乱女网站| 精品视频—区二区三区免费| 精品制服美女久久| 超碰超碰人人人人精品| 久久久久久久久久久久久国产| 亚洲精品久久久久久久久久久| 久久se这里有精品| 欧美激情视频播放| 国产精品视频yy9299一区| 欧美偷窥清纯综合图区| 交换国产精品视频一区| 国产日韩欧美在线视频观看| 一本大道综合伊人精品热热| 99riav1国产精品视频| 伊人福利在线| 中文字幕精品—区二区日日骚| 国产一区二区三区毛片| 91在线播放网址| 亚洲专区视频| 精品美女视频在线观看免费软件 | 国产视频第一页在线观看| 国内精品久久国产| 亚洲的天堂在线中文字幕| 国产一区二区三区四区五区入口| 亚洲色图官网| 老熟妇仑乱视频一区二区 | aa级大片欧美| 伊人久久大香线蕉综合影院首页| 日韩视频在线免费看| 青青草国产精品一区二区| 黑人精品xxx一区| 欧美亚洲自偷自偷| 欧美不卡高清一区二区三区| 黄色片在线免费| 91网在线免费观看| 日韩精品在线一区二区| 国产不卡在线播放| 亚洲aa在线| 日本最新在线视频| 无码人妻少妇伦在线电影| 69av在线播放| 色播五月激情综合网| 成人午夜影视| 好吊的妞视频这里都有| 波多野结衣激情| 深夜福利一区二区| 欧美军人男男激情gay| 欧美性受xxxx黑人猛交| 亚洲成人自拍网| 爽好久久久欧美精品| 国产精品天堂蜜av在线播放 | 欧美精品777| 成人精品免费看| 成人午夜国产| 精品日韩av| 岛国毛片在线播放| 免费一区二区三区| 欧美大片免费观看| 欧美性受xxxx| 东方欧美亚洲色图在线| 不卡一区综合视频| 电影一区二区三| 日韩有码电影| 国产天堂在线播放| 欧美污视频久久久| 国产成人avxxxxx在线看| 亚洲国产日韩欧美在线动漫|