一种基于javax.max注解的能力增强技术

news2024/11/17 3:30:48

目录

现有框架的不足之处

我的改进内容

改进的成果


现有框架的不足之处

@Max是javax.validation包中的一个常用注解,用于对传入参数进行最大值校验。但是其校验区间为闭区间,且不支持修改,如:@Max(2),表示表示传入参数值应小于等于2。在特定业务场景下,我希望传入值应小于2,该注解无法满足需求,因此对其进行。

我的改进内容

在类加载时,会调用org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree#validateConstraints 方法获取属性字段的校验器ConstraintValidator,并拿到约定的最大值。

 随后调用校验器的isValid(T value, ConstraintValidatorContext context)方法进行参数校验,其接口对应实现类为AbstractMaxValidator

 理解实现链路后,我对@Max注解进行了改造,添加了inclusive属性来指定开、闭区间(默认为闭区间)。

 并在AbstractMaxValidator.java中同样引入inclusive属性,以实现对开、闭区间动态判断。

改进的成果

以前在业务中遇到类似的需求,只能在方法体中自己手写代码判断,实现起来相对比较麻烦。现在对@Max注解增强后,可以非常简洁、高效的对开、闭区间进行自定义配置,解决了开发中的一个痛点。

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

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

相关文章

Debug|百度OCR识别错误error_code: 216205

1. 什么错误 在使用百度OCR识别时遇到了错误error_code: 216205。 参照文档【百度OCR文字识别 - API文档 - 错误码】中的描述,是我的图片转base64后大于10M 测试两张图片:923k图片的Base64 大于 10M;2M图片的Base64 小于 10M。 # 电脑上看…

抖音视频下载工具|视频内容提取软件

引言部分: 针对抖音视频下载需求,我们团队自豪推出一款功能强大的工具,旨在解决用户获取抖音视频繁琐问题的困扰。我们通过基于C#开发的工具,让用户能够轻松通过关键词搜索实现自动批量抓取视频,并根据需求进行选择性批…

yolov8-seg dnn调用

接上篇一直更换torch、opencv版本都无法解决这个问题(seg调用dnn报错)。那问题会不会出在yolov8源码本身呢。yolov8的讨论区基本都看过了,我决定尝试在其前身yolov5的讨论区上找找我不信没人遇到这个问题。很快找到下面的讨论第一个帖子&…

Node.JS入门(day01)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学,可以点心心支持一下哈 一、为什么要学习Node.JS ①可以让其他人访问我们编写的网页 ②为后续的框架学习打基础 二、Node.JS是什么 官方:Node.js是一个…

8.qt5使用opencv的库函数打开图片

1.配置opencv动态库的环境变量 2.在创建的qt工程中加入如下opencv代码,具体代码如下: 使用opencv库函数显示图片

编写LLVM Pass的一个小问题

在阅读官方文档时发现一个很有趣的细节,官方给出了一个测试用例,此处有一个小问题(%无法复制)。但是我在使用自己编译的ll文件时,我发现该pass无法正常使用。最后经过测试发现是利用-O0编译产生的ll文件有optnone的fla…

数据库管理-第154期 Oracle Vector DB AI-06(20240223)

数据库管理154期 2024-02-23 数据库管理-第154期 Oracle Vector DB & AI-06(20240223)1 环境准备创建表空间及用户TNSNAME配置 2 Oracle Vector的DML操作创建示例表插入基础数据DML操作UPDATE操作DELETE操作 3 多Vector列表4 固定维度的向量操作5 不…

【达梦数据库】数据库的方言问题导致的启动失败

问题场景 在项目中采用了hibernate ,连接数据库原本为ORACLE,后续打算改造为国产数据库 达梦 链接配置: # 达梦写法, index:driver-class-name: dm.jdbc.driver.DmDriverjdbc-url: jdbc:dm://192.168.220.225:5236/IDX4username:…

深入探索pdfplumber:从PDF中提取信息到实际项目应用【第94篇—pdfplumbe】

深入探索pdfplumber:从PDF中提取信息到实际项目应用 在数据处理和信息提取的过程中,PDF文档是一种常见的格式。然而,要从PDF中提取信息并进行进一步的分析,我们需要使用适当的工具。本文将介绍如何使用Python库中的pdfplumber库来…

危险!Wyze 摄像头安全漏洞致1.3万用户隐私遭窥探

最近,一则关于 Wyze 摄像头再次出现安全漏洞的新闻引起了人们的广泛关注。据报道,该安全漏洞导致约1.3万用户的摄像头受到了未经授权的访问,使得这些用户的隐私信息遭到了窥视。这一事件再次引发了人们对网络安全的关注和讨论。 网络安全不仅…

老杨说运维 | 运维大数据价值探索

文末附有视频 伴随第六届双态IT乌镇用户大会的圆满完成,擎创科技“一体化数智管理和大模型应用”主题研讨会也正式落下了帷幕。 云原生转型正成为很多行业未来发展战略,伴随国家对信创数字化要求的深入推进,面对敏稳共存这一近年出现的新难…

svn客户端下载、安装、使用

下载、使用 打开360软件管家,选怎宝库,搜索svn,点击安装 可以修改安装路径 使用 在桌面右键弹出菜单,点击 输入地址,点击ok 输入用户名、密码 ,等待检出完成

Linux 可视化管理-webmin 和 bt 运维工具安装教程

Linux 可视化管理-webmin 和 bt 运维工具安装教程 webmin webmin 是功能强大的基于 Web 的 Unix/linux 系统管理工具。管理员通过浏览器访问 Webmin 的各种管理功能并完成相应的管理操作。除了各版本的 linux 以外还可用于:AIX、HPUX、Solaris、Unixware、Irix 和…

Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接:https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux应用程序编程 Linux应用程序编程 Linux文件I/O(input/output) Linux文件I/O(五种I/O模型) Linux多进程 Linux多线程 网络通信(s…

游戏空间划分技术

一、 前言 空间划分算法有很多,比如均匀网格,四/八叉树,k-d树,Bsp树,每一种算法都有自己的优缺点,我们需要从理论上理解这些算法,然后在实际项目中进行灵活的运用。 游戏中经常使用空间划分算…

【深度学习】Pytorch 系列教程(七):PyTorch数据结构:2、张量的数学运算(5):二维卷积及其数学原理

文章目录 一、前言二、实验环境三、PyTorch数据结构1、Tensor(张量)1. 维度(Dimensions)2. 数据类型(Data Types)3. GPU加速(GPU Acceleration) 2、张量的数学运算1. 向量运算2. 矩阵…

TESTLINK 测试用例数据结构解析

一、node_types 测试组件信息表 我们查询表 select * from testlink.node_types; 得到如下结果 二、nodes_hierarchy 测试用例目录层次表 我们以下图的项目为例,来讲解 1、测试项目 首先,我们有个Train的项目,存在表testprojects中&#…

动态获取 微信小程序appid / 自定义启动命令

官网:https://uniapp.dcloud.net.cn/collocation/package.html#%E7%94%A8%E6%B3%95 小程序开发完成之后需要一套代码多个小程序使用,每次都需要在manifest.json文件中手动修改,大大增加了开发的复杂度。 官网:https://uniapp.dcl…

【大数据】Flink 内存管理(一):设置 Flink 进程内存

Flink 内存管理(一):设置 Flink 进程内存 1.配置 Total Memory2.JVM 参数3.根据比例限制的组件(Capped Fractionated Components) Apache Flink 通过严格控制各种组件的内存使用,在 JVM 上提供高效的工作负…

测试计划、测试方案、测试策略、测试用例的区别

一 测试计划 测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、各阶段的测试任务、时间进度安排,谁执行任务和风险控制等,可以包括测试策略。 二 测试方案 测试方案是指描述需要测试的特性、测试的方…