ValidatorUtil字段验证工具类

2023-12-19

字段验证工具类

package com.aa.bb.cc.common.utils;


import com.aa.bb.cc.common.exception.BusinessException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import java.util.Set;


public class ValidatorUtil {
    private static Validator validator;

    static {
        validator = Validation.buildDefaultValidatorFactory().getValidator();
    }

    /**
     * 校验对象
     * 
     * @param object 待校验对象
     * @param groups 待校验的组
     * @throws BusinessException 校验不通过,则报RRException异常
     */
    public static String validateEntity(Object object, Class<?>... groups)
            throws BusinessException {
        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>");
            }

            return msg.toString();
        }
        return null;
    }

	/**
	 * 校验对象
	 * @param entity
	 * @param exceptFields
	 * @param <T>
	 */
	public static <T> void validate(T entity, String... exceptFields){
		Set<ConstraintViolation<T>> set=validator.validate(entity);
		if(CollectionUtils.isNotEmpty(set)){
			for (ConstraintViolation<T> item : set) {
				String field = item.getPropertyPath().toString();
				if (!isExcept(field, exceptFields)) {
					String message = item.getMessage();
					throw new BusinessException(1,message);
				}
			}
		}
	}

	/**
	 * 判断属性是否属于例外属性列表
	 * @param field
	 * @param exceptFields
	 * @return
	 */
	private static boolean isExcept(String field, String... exceptFields) {
		if (exceptFields == null)
			return false;
		for (String obj : exceptFields) {
			if (StringUtils.isNotBlank(obj) && field.indexOf(obj) >= 0) {
				return true;
			}
		}
		return false;
	}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ValidatorUtil字段验证工具类 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 四大校招是否可以有内推?机会大吗?

    四大也是有内推的 机会大小还是看你的实力了 需要自己评估 内推机会可以从这些渠道找一下 具体根据自己的情况来 熟人内推 能找到熟人内推是最好的 但是也很考验人脉 付费内推 有些职业培训机构会做付费内推 价格不菲 不太建议 社交媒体 比如 小
  • setbcdlocale.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个setbcdl
  • 免费图片文字识别软件好用吗?分享这3个图文转换利器给你

    有什么软件可以自动识别图片文字吗 当然有了 随着科技的不断发展 越来越多的软件和应用涌现出来 帮助我们更轻松地识别图片中的文字 这些软件不仅可以帮助我们快速准确地获取图片中的信息 还为我们提供了更多的便利和效率 无论是学习 工作还是生活中
  • k8s集群内部署nexus

    一 前言 在k8s集群中部署nexus服务需要使用到pv pvc服务来存储nexus的数据 需要使用service服务来提供对外访问nexus服务的端口 需要使用deployment服务来管理nexus服务 接下来就是用这些服务来在k8s集
  • Python数据分析学习路线详细版总结

    数据分析人人都有必要掌握一点 哪怕只是思维也行 下面探讨Python数据分析需要学习的知识范畴 结合自己的经历和理解 总结的 学习大纲 有些章节带有解释 有些没有 当然 关于学习范畴 可能每个人的理解都不太一样 以下仅供参考 1 数据分析思
  • 干货 | Sqlmap常用手册(收藏)

    sqlmap常用手册 目录 sqlmap常用手册 一 sqlmap介绍 二 常用命令 二 进阶命令 technique BEUST prefix与 suffix level 三 注入https网站
  • 《OCAD光学系统自动设计程序》好书分享

    OCAD是一款具有鲜明工程化特色的中国光学自动设计软件 程序重点在于可以首先进行复杂光学系统的初始布局 进行设计前期的总体方案设计 可以对各类典型光学系统自动进行初始结构设计 作为一款光学系统辅助设计软件 SEEOD以光的直线传播 数学几何
  • Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

    前言 随着Web应用程序的不断发展 自动化测试已成为项目开发中必不可少的一环 然而 验证码的出现却经常会使自动化测试变得更具挑战性 为了解决这个问题 我们需要一种方法来自动识别和处理验证码 从而提高自动化测试的效率和准确性 本文将介绍如何封
  • 如何学习Python数据分析,最全路径图送给你(100天Get新技能)

    和很多同学接触过程中 我发现自学Python数据分析的一个难点是资料繁多 过于复杂 大部分网上的资料总是从Python语法教起 夹杂着大量Python开发的知识点 花了很多时间却始终云里雾里 不知道哪些知识才是真正有用的 本来以为上手就能写
  • 黑马程序员《PHP基础案例教程》第2版课后练习—第10章

    第10章课后练习 答案均参考教材官方发布的PPT 以下是下载PPT的页面 人民邮电出版社教育社区 PHP基础案例教程 第2版 图书 人邮教育社区 一 填空题 1 要想开启GD库 需要打开php ini 将 extension php gd2
  • 软件测试经典面试题:如何进行支付功能的测试?

    非现金支付时代 非现金支付已经成为了生活不可或缺的一部分 我们只需要一台手机便可走遍全国各地 前提是支付宝 微信有钱 lt 00 gt 那么作为测试人员 支付测试也是非常重要的一环 那么下面我就结合一下我的工作中遇到的一些问题 总结一下常见
  • 《基于Essential Macleod软件的光学薄膜设计技术》(第二版 精装版)

    内容简介 Macleod软件自带的用户手册功能全面 其介绍涵盖了软件的方方面面 能够使用户快速的了解和熟悉软件的基本操作 然而 为了顺应目前薄膜行业的需求 急需一本能够契合软件设计和实际加工需要的专业书籍 以能够帮助薄膜领域的同行高效的完成
  • 《Techwiz LCD 3D中文手册》好书分享

    目录 前言 1 总览 1 版权 1 更新历史 2 Part I 安装程序 1 1 安装TechWiz LCD 3D 程序 2 2 安装许可证服务程序 4 3 请求许可证 6 3 1 使用 Host ID 程序 6 3 2 使用 Imtool
  • 黑马程序员《PHP基础案例教程》第2版课后练习—第09章

    第9章课后练习 答案均参考教材官方发布的PPT 以下是下载PPT的页面 人民邮电出版社教育社区 PHP基础案例教程 第2版 图书 人邮教育社区 一 填空题 1 使用fopen 函数打开文件后 返回值是 resource 数据类型 2 fil
  • 从零开始学习Web自动化:用Python和Selenium实现网站登录功能!

    Web自动化测试实战项目 使用Selenium和Python完成网站登录功能的自动化测试 本文将介绍如何使用Selenium和Python编写自动化测试脚本 对网站登录功能进行测试 我们将通过模拟用户在网站上输入用户名和密码 并点击登录按钮
  • mysql mha高可用

    一 前言 在原本的一主两从数据库架构中 是没有高可用功能的 当主库挂了时不会自动将剩下的从从升级为主库 只能等待主库恢复才能使用 或者手动切换 但是手动切换后需要更改后端服务中的数据库地址信息 在此情况下 需要引入mha服务来实现一主两从数
  • Java版本+鸿鹄企业电子招投标系统源代码+支持二开+Spring cloud +鸿鹄电子招投标系统

    项目说明 随着公司的快速发展 企业人员和经营规模不断壮大 公司对内部招采管理的提升提出了更高的要求 在企业里建立一个公平 公开 公正的采购环境 最大限度控制采购成本至关重要 为了符合国家电子招投标法律法规及相关规范 以及审计监督要求 我们决
  • SAP搜索帮助的限制值范围样式

    样式一 点击下拉框 输入筛选数据 筛选搜索帮助列表 样式二 点击漏斗 输入筛选数据 筛选搜索帮助列表 参数设置 不同的样式 通过账号的参数设置决定 第一种样式 没有配置F4METHOD 或者配置了参数值为ActiveX 第二种样式 配置了F
  • CSDN:黑马程序员《PHP基础案例教程》第2版课后练习—第06章

    第6章课后练习 答案均参考教材官方发布的PPT 以下是下载PPT的页面 人民邮电出版社教育社区 PHP基础案例教程 第2版 图书 人邮教育社区 一 填空题 1 HTTP请求消息由 请求行 请求头和请求体三部分组成 2 HTTP响应消息由响应
  • ValidatorUtil字段验证工具类

    字段验证工具类 package com aa bb cc common utils import com aa bb cc common exception BusinessException import org apache commo