日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java参数校验:ValidatorUtils校验框架工具类的使用

發布時間:2025/3/12 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java参数校验:ValidatorUtils校验框架工具类的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

🍅 作者主頁:Java李楊勇?

🍅 簡介:Java領域優質創作者🏆、【java李楊勇】公號作者? ?簡歷模板、學習資料、面試題庫【關注我,都給你】

在日常開發中經常對參數進行校驗、可以使用Validator,一般情況下用來驗證web前端頁面傳過來的對象數據屬性 是否符合標準要求預期。

首先需要在需要校驗的java實體類中對需要校驗的對象屬性添加相關注解說明:

用戶對象舉例:

package com.railway.modules.sys.entity;import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.railway.common.validator.group.AddGroup; import com.railway.common.validator.group.UpdateGroup; import lombok.Data; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.util.Date; import java.util.List;/*** 系統用戶** @author lyy */ @Data @TableName("sys_user") public class SysUserEntity implements Serializable {private static final long serialVersionUID = 1L;/*** 用戶ID*/@TableIdprivate Long userId;/*** 用戶名*/@NotBlank(message="用戶名不能為空", groups = {AddGroup.class, UpdateGroup.class})private String username;/*** 密碼*/@NotBlank(message="密碼不能為空", groups = AddGroup.class)private String password;/*** 鹽*/private String salt;/*** 郵箱*/@NotBlank(message="郵箱不能為空", groups = {AddGroup.class, UpdateGroup.class})@Email(message="郵箱格式不正確", groups = {AddGroup.class, UpdateGroup.class})private String email;/*** 手機號*/private String mobile;/*** 狀態 0:禁用 1:正常*/private Integer status;/*** 角色ID列表*/@TableField(exist=false)private List<Long> roleIdList;/*** 創建者ID*/private Long createUserId;private String roleName;private String position;/*** 創建時間*/private Date createTime;}

注解參數說明:

驗證注解驗證的數據類型說明
@AssertFalseBoolean,boolean驗證注解的元素值是false
@AssertTrueBoolean,boolean驗證注解的元素值是true
@NotNull任意類型驗證注解的元素值不是null
@Null任意類型驗證注解的元素值是null
@Min(value=值)BigDecimal,BigInteger, byte,short, int, long,等任何Number或CharSequence(存儲的是數字)子類型驗證注解的元素值大于等于@Min指定的value值
@Max(value=值)和@Min要求一樣驗證注解的元素值小于等于@Max指定的value值
@DecimalMin(value=值)和@Min要求一樣驗證注解的元素值大于等于@ DecimalMin指定的value值
@DecimalMax(value=值)和@Min要求一樣驗證注解的元素值小于等于@ DecimalMax指定的value值
@Digits(integer=整數位數, fraction=小數位數)和@Min要求一樣驗證注解的元素值的整數位數和小數位數上限
@Size(min=下限, max=上限)字符串、Collection、Map、數組等驗證注解的元素值的在min和max(包含)指定區間之內,如字符長度、集合大小
@Pastjava.util.Date,java.util.Calendar;Joda Time類庫的日期類型驗證注解的元素值(日期類型)比當前時間早
@Future與@Past要求一樣驗證注解的元素值(日期類型)比當前時間晚
@NotBlankCharSequence子類型驗證注解的元素值不為空(不為null、去除首位空格后長度為0),不同于@NotEmpty,@NotBlank只應用于字符串且在比較時會去除字符串的首位空格
@Length(min=下限, max=上限)CharSequence子類型驗證注解的元素值長度在min和max區間內
@NotEmptyCharSequence子類型、Collection、Map、數組驗證注解的元素值不為null且不為空(字符串長度不為0、集合大小不為0)
@Range(min=最小值, max=最大值)BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子類型和包裝類型驗證注解的元素值在最小值和最大值之間
@Email(regexp=正則表達式,flag=標志的模式)CharSequence子類型(如String)驗證注解的元素值是Email,也可以通過regexp和flag指定自定義的email格式
@Pattern(regexp=正則表達式,flag=標志的模式)String,任何CharSequence的子類型驗證注解的元素值與指定的正則表達式匹配
@Valid任何非原子類型指定遞歸驗證關聯的對象如用戶對象中有個地址對象屬性,如果想在驗證用戶對象時一起驗證地址對象的話,在地址對象上加@Valid注解即可級聯驗證

ValidatorUtils校驗類

/*** hibernate-validator校驗工具類** 參考文檔:http://docs.jboss.org/hibernate/validator/5.4/reference/en-US/html_single/** @author admin*/ public class ValidatorUtils {private static Validator validator;static {validator = Validation.buildDefaultValidatorFactory().getValidator();}/*** 校驗對象* @param object 待校驗對象* @param groups 待校驗的組* @throws RRException 校驗不通過,則報RRException異常*/public static void validateEntity(Object object, Class<?>... groups)throws RRException {Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);if (!constraintViolations.isEmpty()) {StringBuilder msg = new StringBuilder();for(ConstraintViolation<Object> constraint: constraintViolations){msg.append(constraint.getMessage()).append("<br>");}throw new RRException(msg.toString());}} }

?Controller層使用:

/*** 保存用戶*/@PostMapping("/save")public R save(@RequestBody SysUserEntity user){ValidatorUtils.validateEntity(user, AddGroup.class);sysUserService.saveUser(user);return R.ok();}

?源碼獲取:?

大家點贊、收藏、關注、評論啦 、查看👇🏻👇🏻👇🏻微信公眾號獲取聯系方式👇🏻👇🏻👇🏻

打卡 文章 更新 192/ ?365天

?精彩專欄推薦訂閱:在下方專欄👇🏻👇🏻👇🏻👇🏻

Java項目精品實戰案例《100套》

web前端期末大作業網頁實戰《100套》

總結

以上是生活随笔為你收集整理的java参数校验:ValidatorUtils校验框架工具类的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。