Java配置自定义校验

1、自定义注解State

messagegroupspayload

package com.zhang.anno;import com.zhang.validartion.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;import java.lang.annotation.*;import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;/*** @program: big_event* @description: TODO* @author: Mr.Zhang* @create: 2024-04-06 14:18**/@Documented //元注解
@Retention(RUNTIME) //元注解
@Target({FIELD}) //元注解
@Constraint(validatedBy = {StateValidation.class}//指定提供校验器规则的类
)
public @interface State {//提供校验失败后的提示消息String message() default "state参数的值只能是已发布或者草稿";//指定分组Class<?>[] groups() default {};//负载 获取到state注解的附加信息Class<? extends Payload>[] payload() default {};}

2、自定义校验数据的类StateValidation

package com.zhang.validartion;import com.zhang.anno.State;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;/*** @program: big_event* @description: TODO* @author: Mr.Zhang* @create: 2024-04-06 14:25**/
//public class StateValidation implements ConstraintValidator<给哪个注解提供检验规则,检验的数据类型> {
//
//}
public class StateValidation implements ConstraintValidator<State,String> {/**** @param value 将来要检验的数据* @param context* @return  如果返回false,则表示校验失败,如果返回true,则表示校验成功*/@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {//提供校验规则if (value == null) {return false;}if ("已发布".equals(value) || "草稿".equals(value)) {return true;}//如果校验失败,则提供提示信息return false;}
}

3、在需要校验的地方使用自定义注解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django -- 自动化测试

概述 测试是一种例行的、不可缺失的工作&#xff0c;用于检查你的程序是否符合预期。 测试可以划分为不同的级别。一些测试可能专注于小细节&#xff08;比如某一个模型的方法是否会返回预期的值&#xff1f;&#xff09;&#xff0c; 一些测试则专注于检查软件的整体运行是否…

list的使用

前言 我们前面已经对string和vector进行了学习使用&#xff0c;以及对他们的底层进行了模拟实现&#xff01;本期我们继续学习STL的另外一个容器---list。 本期内容介绍 什么是list&#xff1f; list的常用接口 什么是list? 还是来看看官方的文档说明&#xff01; 这里通过…

钉钉事件订阅前缀树算法gin框架解析

当钉钉监测到发生一些事件&#xff0c;如下图 此处举例三个事件user_add_org、user_change_org、user_leave_org&#xff0c;传统的做法是&#xff0c;我们写三个if条件&#xff0c;类似下图 这样字符串匹配效率比较低&#xff0c;于是联想到gin框架中的路由匹配算法&#xff0…

jangow-01-1.0.1 靶机渗透

信息收集部分&#xff1a; 1.nmap存活探测&#xff1a; 2.nmap端口探测&#xff1a; 3.nmap服务探测&#xff1a; 这里应该是21和80端口&#xff0c;&#xff0c;但21需要登陆访问&#xff0c;用不了&#xff0c;问题不大。 web&#xff1a; 页面&#xff1a; 发现RCE: 1.we…

docker容器环境安装记录(MAC M1)(完善中)

0、背景 在MAC M1中搭建商城项目环境时&#xff0c;采用docker统一管理开发工具&#xff0c;期间碰到了许多环境安装问题&#xff0c;做个总结。 1、安装redis 在宿主机新建redis.conf文件运行创建容器命令&#xff0c;进行容器创建、端口映射、文件挂载、以指定配置文件启动…

75.将插槽传递给子组件不要在模板 ref 中使用响应式对象

将插槽传递给子组件 在某些情况下&#xff0c;我们想将父组件的所有插槽传递给子组件。当创建一个为子组件添加一些功能的包装组件时&#xff0c;这尤其有用。 假设我们有一个 Child.vue 组件&#xff0c;它有两个命名插槽&#xff0c; top 和 bottom &#xff1a; <templat…

YCKCOJ清明进阶专题题解

总的来说还是有难度的&#xff0c;这也能二分&#xff1f;&#xff1f;&#xff1f; 本套题需要大家尽量思考 A题 DARLING in the FRANXX 实际上这是一部好看的日漫&#xff0c;本题的背景主要以 叫龙 叫龙 叫龙为主&#xff0c;它是一种生物。。。好了言归正传&#xff0c;抓…

【SCI绘图】【曲线图系列1 python】绘制扫描点平滑曲线图

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【曲线图1 python】绘制扫描点平滑曲线图 1.环境准备 python 3 import numpy as np import pandas as pd import proplot …

计算机英文

多取自各个语言和框架的基本库文件 英文含义其他compile编译decorator修饰comma段落、 逗号colon冒号operand操作数kernel内核invalid无效的combination组合opcode操作码boot引导record记录workflow工作流程row行column列简写colobject对象简写objtemp缓存常用于中间变量param…

一点点安全资料:网络安全扩展

协议扩展 加密协议SSL/TLS 简介 SSL&#xff08;Secure Sockets Layer&#xff09;和TLS&#xff08;Transport Layer Security&#xff09;是加密协议&#xff0c;设计用来提供网络通信的安全性和数据完整性。尽管TLS是SSL的后继者&#xff0c;但两者的核心目标相同&#x…

hibernate检索方式

hibernate检索方式 检索方式即为查询对象的方式 hibernate提供了几种检索对象的方式 导航对象图检索方式 &#xff1a;使用已加载的对象get获取关联对象 OID检索方式 &#xff1a;使用OID来获取对象get()和load()方法 HQL检索方式&#xff1a;使用面向对象的HQL(Hibernate Quer…

计算机视觉基础入门指南

前言 计算机视觉是一门研究如何使计算机能够“看”和理解图像或视频的学科。随着人工智能的快速发展&#xff0c;计算机视觉在各个领域的应用越来越广泛。本文将为您介绍计算机视觉的基本概念、应用领域以及学习路径&#xff0c;帮助您快速入门这一领域。 一、计算机视觉的基本…

win10上一个详细的Django开发入门例子

1.Django概述 Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。 Django 框架的核心组件有&#xff1a; 用于创建模型的对象关系映射&#xff1b; 为最终用户设计较好的管理界面&#xff1b…

蓝桥杯每日一练

【问题描述】 小蓝制作了 n 个工件&#xff0c;每个工件用一个由小写英文字母组成的&#xff0c;长度为 2 的字符串表示&#xff0c;第 i 个工件表示为 si 。小蓝想把 n 个工件拼接到一起&#xff0c;方便转 移到另一个地方完成下一道工序&#xff0c;而拼接后的工件用字符串 S…

谷歌(Google)历年编程真题——数组和字符串(加一)

Google 希望了解你的编码技能和专业技术知识&#xff0c;包括工具、编程语言&#xff0c;以及关于数据结构和算法等主题的一般知识。讨论过程中通常会反复提到相关的话题&#xff0c;就像在工作中的讨论那样&#xff0c;从而推动彼此思考并学习不同的方法。无论你的工作经验如何…

使用Arcpy进行数据批处理-批量裁剪

时空大数据使我们面临前所未有的机遇和挑战&#xff0c;尤其在地学、遥感或空间技术等专业领域&#xff0c;无疑是一个全新的时代。 伴随着时空大数据的到来&#xff0c;海量数据的处理是一个所有科研工作者都无法忽视的重要问题。传统的数据&#xff08;主要指空间数据&#x…

Docker实战教程 第1章 Linux快速入门

2-1 Linux介绍 为什么要学Linux 三个不得不学习 课程需要&#xff1a;Docker开发最好在Linux环境下。 开发需要&#xff1a;作为一个后端程序员&#xff0c;是必须要掌握Linux的&#xff0c;这是找工作的基础门槛。 运维需要&#xff1a;在服务器端&#xff0c;主流的大型服…

SDWebImage源码解析---疑难问题解答

SDWebImage的简单流程图&#xff1a; 上图大致流程是对的&#xff0c;有几个没写到的地方&#xff1a; 首先判断url的类型是不是URL类型或string类型&#xff0c;判断url是否为nil占位图更早一些&#xff0c;在url判断后&#xff0c;就行显示占位图加载沙盒中对应的图片后&…

Premiere Pro 2024:赋予创意翅膀,让你的视频飞翔 mac/win版

Premiere Pro 2024&#xff0c;作为Adobe旗下的旗舰视频编辑软件&#xff0c;自推出以来&#xff0c;一直在视频制作领域占据着重要的地位。随着技术的不断进步和创新&#xff0c;Premiere Pro 2024为用户带来了前所未有的编辑体验&#xff0c;重新定义了视频制作的标准。 Pre…

Marketo营销自动化集成Zoho CRM

Marketo 本身是一种营销自动化工具&#xff0c;可让您根据指定的标准对潜在客户进行评分&#xff0c;并确定哪些潜在客户最有可能进行转化。 CRM 和 Marketo 之间的紧密集成可帮助您规划销售和营销活动&#xff0c;以培育这些高价值潜在客户并最大限度地提高您的团队可以赢得的…