詳解如何在Spring Boot專案使用引數校驗

2022-10-07 09:18:09 字數 1763 閱讀 8259

開發web專案有時候我們需要對controller層傳過來的引數進行一些基本的校驗,比如非空,非null,整數值的範圍,字串的個數,日期,郵箱等等。最常見的就是我們直接寫**校驗,這樣以後比較繁瑣,而且不夠靈活。

bean validation 1.0(jsr-303)是乙個校驗規範,在spring boot專案由於自帶了hibernate validator 5(實現,所以我們可以非常方便的使用這個特性 。

核心的pom依賴:

org.hibernate

hibernate-validator

5.3.1.final

首先,需要我們宣告乙個bean,注入校驗器到spring boot的執行環境

@configuration

@enableautoconfiguration

public class factoryconfig

}校驗常用的註解如下:

@assertfalse 校驗false

@asserttrue 校驗true

@decimalmax(value=,inclusive=) 小於等於value,

inclusive=true,是小於等於

@decimalmin(value=,inclusive=) 與上類似

@max(value=) 小於等於value

@min(value=) 大於等於value

@notnull 檢查null

@past 檢查日期

@pattern(regex=,flag=) 正則

@size(min=, maxbzabrtio=) 字串,集合,map限制大小

@valid 對po實體類進行校驗

下面看乙個使用例子:

package hello;

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

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

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

public class bzabrtiopersonform

public void setname(string name)

public integer getage()

public void setage(integer age)

public string tostring()

}接著看下如何在controller層使用

//非實體類引數可以直接使用註解

@getma"/check")

@responsebody

public string check(@min(0,message = "kpid必須大於等於0") @requestparam int kpid,@req程式設計客棧uestparam int lwww.cppcns.comevel)

//實體類註解校驗使用@valid

@postmapping("/")

public string checkpersoninfo(@valid personform personform, bindingresult bindingresult)

return "redirect:/results";

}注意上面的spring提供的bindingresult是錯誤結果的乙個封裝,我們可以在web頁面中通過這個物件拿到詳細的錯誤資訊,

age error

本文標題: 詳解如何在spring boot專案使用引數校驗

本文位址:

如何在IDEA中建立Spring Boot專案

1.spring boot是spring家族中的乙個全新的框架,它用來簡化spring應用程式的建立和開發過程,也可以說spring boot能簡化我們之前採用springmvc spring mybatis框架進行開發的過程。2.在以往我們採用springmvc spring mybatis框架進...

如何在Spring Boot開啟事務

今天給大家介紹如何在spring boot中開啟事務,希望大家喜歡。說到事務,那什麼是事務呢?事務 transaction 一般是指要做的或所做的事情。那麼如何在spring boot中使用呢?其實只需要兩步即可 在service實現類的方法上新增 transactional註解。具體實現 pack...

如何在Springboot使用執行緒池(1)

如何在springboot使用執行緒池?方法1 注入執行緒池bean 寫乙個treadpoolconfig類,定義乙個方法,建立執行緒池物件 configuration public class treadpoolconfig 說明 bean註解可以作用在方法上,從而方法的返回值會作為bean,被s...