開發中常用到的 Valid 註解型別的使用

2021-10-08 08:16:58 字數 1975 閱讀 7963

一:前言

搭建springboot專案,採用restful介面,當前端呼叫介面或者是其他專案呼叫時,我們不能單一靠呼叫方來控制引數的準確性,自己也要對一些非空的值進行判定。

二:傳統解決方案

就是我們自己在**中對引數一一進行判空操作

model:

/**

* @author: liman

* @date: 2020/7/20 16:27

* @description:

*/public class user

controller:

public string createuser(@requestbody user dto)

這種做法能滿足我們的要求,但是這樣如果model欄位過多,判定的就很多,相對維護起來就不是那麼方便,其次增加controller層的負擔,既然我們來到spring4的時代,就應該適應使用註解的趨勢,下面是使用註解後的比變化。

註解式開發:

model:

public class user
controller:在controller層的方法的要校驗的引數上新增@valid註解

public string createorders(@requestbody @valid user dto, bindingresult results)

這樣我們就只需要在model欄位上加上非空驗證和相應提示語就好了。

三:@valid常用註解如下:

@null 限制只能為null

@notnull 限制必須不為null

@assertfalse 限制必須為false

@asserttrue 限制必須為true

@decimalmax(value) 限制必須為乙個不大於指定值的數字

@decimalmin(value) 限制必須為乙個不小於指定值的數字

@digits(integer,fraction) 限制必須為乙個小數,且整數部分的位數不能超過integer,小數部分的位數不能超過fraction

@future 限制必須是乙個將來的日期

@max(value) 限制必須為乙個不大於指定值的數字

@min(value) 限制必須為乙個不小於指定值的數字

@past 限制必須是乙個過去的日期

@pattern(value) 限制必須符合指定的正規表示式

@size(max,min) 限制字元長度必須在min到max之間

@past 驗證註解的元素值(日期型別)比當前時間早

@notempty 驗證註解的元素值不為null且不為空(字串長度不為0、集合大小不為0)

@notblank 驗證註解的元素值不為空(不為null、去除首位空格後長度為0),不同於@notempty,@notblank只應用於字串且在比較時會去除字串的空格

@email 驗證註解的元素值是email,也可以通過正規表示式和flag指定自定義的email格式

需要注意每個註解對應的資料型別

舉例:

//@notnull:主要用在基本資料型別上(int,integer,double,date)

@notnull(message = 「年齡不能為空」)

private integer age;

//@notblank:主要用在string字串上面(string)

@notblank(message = 「名字不能為空」)

private string name;

//@notempty; 加了@notempty註解的string類 ,collection集合,map ,陣列,這些是不能為null或者長度為0的;(string ,collection,map的isempty()方法)

專案中常用到的註解,分類,用法

用於指示spring類的例項是乙個控制器,加在controller類上使用 controller 用於標註業務層元件 service 指定要變成實現類的介面所在的包,然後包下面的所有介面在編譯之後都會生成相應的實現類 是在springboot啟動類上面新增 路徑 申明請求的url,加在control...

java開發中常用到小方法

arraylist轉陣列 獲取優惠券全部策略id string private string getstrategyidarraycache throws exception int rightstype businessemun.rightstype.優惠券.getvalue listresult...

iOS開發中常用到的加密方式

1 base64 1.1 簡介 base64編碼的思想是是採用64個基本的ascii碼字元對資料進行重新編碼。它將需要編碼的資料拆分成位元組陣列。以3個位元組為一組。按順序排列24位資料,再把這24位資料分成4組,即每組6位。再在每組的的最高位前補兩個0湊足乙個位元組。這樣就把乙個3位元組為一組的資...