springboot 通過註解校驗類中字段

2022-09-06 03:12:12 字數 2949 閱讀 2717

1.引入m**en依賴

如果是springboot專案,就可以不必引入,這個存在最核心的web開發包裡

org.springframework.boot

spring-boot-starter-web

2.0.5.release

如果不是springboot專案,則需要引入如下依賴包

j**ax.validation

validation-api

1.1.0.final

2.dto類新增註解

import lombok.data;

import j**ax.validation.constraints.notblank;

import j**ax.validation.constraints.notempty;

import j**ax.validation.constraints.notnull;

import j**a.io.serializable;

/*** 使用者資訊dto

* @author htdd

*/@data

public class userinfodto implements serializable

3.三種非空校驗的區別

@notnull 是校驗 json字串中變數為null的 例: ← 校驗有效; 對json字串中傳遞引數為 "" 這種校驗無效 例 : ← 校驗無效;對json字串中校驗 " " 無效 例: ← 校驗無效;

@notempty 可以校驗null 和 "" 的情況,但是對 " "  ←(中間有個空格)就無效 例: ← 校驗有效;例 : ← 校驗有效;例: ← 校驗無效;

@notblank 可以校驗以上三種情況  例: ← 校驗有效;例 : ← 校驗有效;例: ← 校驗有效;

4.controller控制器中校驗

這樣我們就只需要在dtol欄位上加上非空驗證和相應提示語就好了。注意 需要校驗的類前需要加入@valid 註解 不然註解不生效。

5.常用的校驗註解

​j**ax.validation.constraints.notnull

​@null 被注釋的元素必須為null

@notnull 被注釋的元素不能為null

@asserttrue 被注釋的元素必須為true

@assertfalse 被注釋的元素必須為false

@min(value) 被注釋的元素必須是乙個數字,其值必須大於等於指定的最小值

@max(value) 被注釋的元素必須是乙個數字,其值必須小於等於指定的最大值

@decimalmin(value) 被注釋的元素必須是乙個數字,其值必須大於等於指定的最小值

@decimalmax(value) 被注釋的元素必須是乙個數字,其值必須小於等於指定的最大值

@size(max,min) 被注釋的元素的大小必須在指定的範圍內。

@digits(integer,fraction) 被注釋的元素必須是乙個數字,其值必須在可接受的範圍內

@past 被注釋的元素必須是乙個過去的日期

@future 被注釋的元素必須是乙個將來的日期

@pattern(value) 被注釋的元素必須符合指定的正規表示式。

@email 被注釋的元素必須是電子郵件位址

@length 被注釋的字串的大小必須在指定的範圍內

@notempty 被注釋的字串必須非空

@range 被注釋的元素必須在合適的範圍內

6.註解補充

@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格式

7.扒圖小能手(來自別人的部落格)

常用校驗註解:

8.2022-01-05 補充

/**

* 手機號格式校驗

*/@pattern(regexp = "1[3|4|5|7|8][0-9]\\d",message = "手機號格式不正確")

private string phone;

Spring Boot 通過註解實現資料校驗的方法

一 依賴 org.springframework.boot spring boot starter validation 2.3.3.release 二 實體類 tablefield username notblank message private string username notblank...

SpringBoot中通過住註解方式使用Redis

首先在啟動類上新增 enablecache註解,表示開始註解快取功能 特別注意 spring框架中所有的註解都是通過aop的原理實現的,即spring框架為我們建立 物件,物件去實現註解的功能。所以當乙個支援快取的方法,在物件內部被呼叫的時候,是不會觸發快取功能的,因為當前類方法呼叫當前類方法使用的...

spring boot通過自定義註解列印所需日誌

在實際專案中可能需要監控每個介面的請求時間以及請求引數等相關資訊,那麼此時我們想到的就是兩種實現方式,一種是通過 實現,另一種則通過aop自定義註解實現。本文介紹自定義註解實現方式!自定義註解,四個元註解就不解釋了前面有篇章介紹。retention retentionpolicy.runtime t...