import org.springframework.util.Assert; import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; import com.suning.gcms.gcapi.utils.ErrorsUtil; import com.suning.gcms.gcapi.utils.JsonUtil; /** * 用于entity/dto/vo等参数校验,支持级联对象<br> * * @Null 被注释的元素必须为 null * @NotNull 被注释的元素必须不为 null * @AssertTrue 被注释的元素必须为 true * @AssertFalse 被注释的元素必须为 false * @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 * @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 * @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 * @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 * @Size(max=, min=) 被注释的元素的大小必须在指定的范围内 * @Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内 * @Past 被注释的元素必须是一个过去的日期 * @Future 被注释的元素必须是一个将来的日期 * @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式 * @Valid 级联对象,<b>注:</b>使用此注解之前,请先使用NotNull,否则当级联对象为null时,不能校验。<br> * * Hibernate Validator 附加的 constraint<br> * @NotBlank 验证字符串非null,且长度必须大于0 * @Email 被注释的元素必须是电子邮箱地址 * @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内 * @NotEmpty 被注释的字符串的必须非空 * @Range(min=,max=,message=) 被注释的元素必须在合适的范围内 * * @author 13073457 */ public class ParamsValidation{ private LocalValidatorFactoryBean validationFactory; /** * 功能描述: 校验参数<br> * * @param json 需转为对象的json数据 * @param targetClass 所有需要的对象类型 * @return 所有错误信息 */ public <T> Errors validate(String json, Class<T> targetClass){ Assert.notNull(json, "json参数不能为空"); Assert.notNull(targetClass, "targetClass不能为空"); T t = JsonUtil.fromJson(json, targetClass); return this.validate(t); } /** * 功能描述: 校验参数<br> * * @param obj 需校验数据的对象,不可为空 * @return 所有错误信息 */ public <T> Errors validate(T obj){ Assert.notNull(obj); Errors errors = new BeanPropertyBindingResult(obj, obj.getClass().getName()); ValidationUtils.invokeValidator(validationFactory, obj, errors); return errors; } public void setValidationFactory(LocalValidatorFactoryBean validationFactory) { this.validationFactory = validationFactory; } public <T> String validateParams(T reqDTO){ String errMsg; if(reqDTO == null){ return "请求为空"; } // 校验参数 Errors errors = validate(reqDTO); errMsg = ErrorsUtil.getErrorMsg(errors); return errMsg; } }
相关推荐
格拉姆角场(GAF)实战:用Python实现时间序列图像化处理
本文深入解析了格拉姆角场(GAF)技术,这是一种将一维时间序列转化为二维图像特征的方法,以便利用卷积神经网络(CNN)等图像模型进行深度分析。文章通过Python实战代码,详细演示了GASF和GADF两种核心转换的实现过程,并探讨了其在时序数据分类任务中的应用,为故障预警、金融模式识别等场景提供了强大的图像驱动分析视角。
后端门卫 - 参数校验方式总结
在我们日常开发的工作中 一定会遇到参数接收 有些开发可能不会太关注参数校验这方面 其中一个原因是感觉不会造成什么大事故 还有就是前端比较负责 参数传递比较规范 但是作为开发还是要做好参数校验 减少问题的出现本文整理了一些常用的参数校验的方法 可能不是很全 但是也有一定的帮助手动校验注解校验验证器类和使用第三方库。每种方法都有自己的优点和适用场景。选择合适的参数校验方法取决于具体的需求和项目规模。无论采用何种方法,参数校验的目标始终是保证系统的安全性和可靠性。
Drugbank XML文件解析
DrugBank Release Version 5.1.13 | DrugBank Online点击download下载XML文件,也可以使用COMMAND命令下载。(下载文件需要先注册一个账号文件,就可以下载了)下载好压缩文件,并解压会得到如下两个文件:full database.xml就是我们所需要的XML文件,完整的XML很大,大约为1.6G因为原始的文件非常大,直接查看XML文件是有困难的,所以我们使用一下命令来查看该文件的前一百行 得到如下输出 对于前三行 第一行:表示XML 版本为 1.0
后端代码(java)
1.原生JDBC连接 (1) 引入包 <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependenc
spark 适配达梦数据库
spark 适配达梦数据库 版本 spark3.0.0 scala2.12.10 DM Database Server 64 V8 步骤一: 引驱动包: SBT方式: "com.dameng" % "Dm8JdbcDriver18" % "8.1.0.157", maven方式: <dependency> <groupId>com.dameng</groupId> <artifactId>Dm8JdbcDriver18</artifac
工业场景落地:Java+PaddleOCR实现高性能OCR文字识别的终极方案
本文深度解析基于Java的高性能工业级OCR实现方案,集成PP-OCRv5深度学习模型,提供: ✅ 多场景支持:手写体、竖排文本、票据表格的精准识别 ✅ 工业级性能:毫秒级响应,支持GPU加速与高并发处理 ✅ 开箱即用:通过Maven快速集成,5行代码完成文字识别 ✅ 完整技术栈:覆盖文本检测、方向校正、识别后处理全流程 附可运行示例代码,助您快速构建企业级OCR系统!
后端代码规范
代码规范
手把手教你用Kokoro-82M-v1.1-zh搭建本地TTS服务(含WebSocket接口)
本文详细介绍了如何使用Kokoro-82M-v1.1-zh模型搭建本地TTS服务,包括环境配置、模型部署、WebSocket接口实现及性能优化。通过实战指南,开发者可以快速掌握本地部署TTS系统的关键技术,提升语音交互应用的开发效率。
前端校验和后端校验区别
前台验证数据格式 后台验证的是数据的正确性 当下流行的系统架构方案中,前端和后端都是分离开的。 目的:① 为了方便前端开发人员和后端开发人员可以同时开发;② 前后端分离也使得前后端的代码可以分开进行管理,方便了各自的版本迭代及控制。 1.1前端校验 就是通过前端技术,在浏览器(B/S模式中的B(browser)端)上面可以进行简单的数据检查。 如果前端不进行任何的数据检查,直接把数据发送给后端,让后端来进行检查的话,那么就会带来这样的问题: 太浪费网络,对于网站本身来说完全就是在浪费流..
基于STM32的室内环境监测系统设计与实现
摘要 本文设计了一种基于STM32的室内环境监测系统,通过传感器实时采集温湿度、空气质量、烟雾浓度等数据,并利用Wi-Fi模块上传至云服务器。系统采用STM32F103C8T6作为主控芯片,结合DHT11、MQ系列传感器及BMP280气压传感器实现数据采集,通过ESP8266模块实现远程数据传输。用户可通过手机APP实时查看环境参数,并在数据超标时触发报警。实验表明,系统运行稳定,监测精度高,具有低成本、易扩展等特点,为改善室内环境质量提供了有效解决方案。 关键词:STM32;室内环境监测;传感器;Wi-F
BlockUI专栏目录
BlockUI是一个设计NX对话框的工具,是官方推荐使用的对话框制作方法,能够与NX自身风格相统一,并且在实际开发中经常被使用。BlockUI可以帮助用户快速创建NX对话框,支持多种控件类型,如按钮、文本框、标签等。通过使用BlockUI,用户可以轻松地自定义对话框的布局、样式和交互行为。此外,BlockUI还提供了一些高级功能,如动态更新、条件显示和事件处理等,以帮助用户创建更加复杂和灵活的对话框。本专栏讲述了使用BlockUI制作NX对话框的方法,介绍了每个控件的功能,并且分享一些常用操作的源码。
常用后端代码结构
常用后端代码结构 项目常用后端代码结构也就是Controller+Service+Dao,如图所示: 功能 Controller层(流程控制层):接收客户端的请求,然后调用Service层业务逻辑,获取到数据,传递数据给视图层(客户端)用于视觉呈现; Service层(业务逻辑层):接收Controller层的请求,然后调用Dao层,获取到数据,service层叫服务层,主要负责业务模块的逻辑应用设计; DAO层(数据操作层):DAO层是连接数据库,对数据库进行操作。 为了方便前端、后端与数据库的数据传输
滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法
滤波算法实现大全——基于匀速直线运动模型的kalman滤波算法
Java 后端实现基于 JWT 的用户认证和权限校验(含代码讲解)
【摘要】本文详细讲解基于SpringBoot+JWT实现用户认证的完整流程,包含登录生成Token、请求鉴权等核心功能。文章提供完整代码示例:1)登录接口校验账号密码并签发JWT;2)JWT工具类实现Token生成/解析;3)过滤器拦截请求校验Token有效性;4)SpringSecurity配置集成JWT过滤器。还涵盖前端携带Token请求的规范,并给出生产环境优化建议如Redis黑名单机制。通过实战演示无状态认证方案,帮助开发者快速掌握JWT在前后端分离项目中的应用。
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
学号判断python_校验学号是否存在后端代码的实现
本季课程把基础知识拆解到项目里,让你在项目情境里学知识。这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能用在哪、能怎么用。平时不明白的知识点,放在项目里去理解就恍然大悟了。一、融汇贯通本视频采用了前后端分离的开发模式,前端使用Vue.js+Element UI实现了Web页面的呈现,后端使用Python 的Django框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
小程序主体变更准入条件、公证材料规范、全流程实操与后端主体信息校验代码实现(2026 最新平台规则)
本文详细解析2026年微信小程序主体变更的全流程操作指南,涵盖6大适用场景(如企业股权调整、公司注销等)、最新准入条件(如主体类型限制、账号解绑要求)及两种验证方式(法人扫码和公证书核验)。全文从运营和技术双视角,给出可直接复用的完整解决方案,帮助开发者高效完成主体变更,规避常见操作风险。
网页前后端输入校验
刚写的,丢了,只想从struts 1.1开始支持前后端校验,我们开始吧。。。1) 在struts-config.xml里加入 value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>2) 在javascript里加validateSearchItemForm(myForm)即可,myForm就是onC
SpringBoot3+Vue3 前后端分离项目实现登录验证码
SpringBoot3+Vue3 前后端分离项目实现登录验证码
前端参数统一校验工具类ValidParamUtils
1,前端参数不可信,对于后端开发人员来说应该是一条铁律,所以对于前端参数的校验,必不可少,而统一的前端参数校验工具,对我们进行参数校验起到事半功倍的效果 2,统一参数校验工具ValidParamUtils public class ValidParamUtils { public static void validInputParams(BindingResult ...
前后端实现:行为验证码---文字点选
④ 验证数据随表单提交到后台后,后台需要调用captchaService.verification做二次校验。git地址:https://github.com/susanliy/point_captcha。后端代码逻辑:https://gitee.com/anji-plus/captcha。最近接到一个新的需求,由于客户是内网,你能使用腾讯的验证码了,需要改为前后端实现。⑤ 第4步返回校验通过/失败到产品应用后端,再返回到前端。③ 用户提交表单,前端将第二步的输出一同提交到后台。具体的代码已经提交git。
功能性的安全保障:输入校验
在软件开发过程中,确保系统的安全性是至关重要的一环。它不仅关乎保护用户数据的完整性和隐私性,也是维护系统稳定运行的基石。我认为,从宏观角度审视,软件开发的安全性保障主要可分为两大类:功能性的安全性保障和系统性的安全性校验。功能性的安全性保障专注于应用程序层面,它着眼于那些直接影响用户数据和交互过程安全的特性。这些特性是构建用户信任和保障数据安全的关键。而系统性的安全性校验则放眼于更为广阔的视角,它涵盖了整个系统架构和网络层面,确保从服务器到网络的每一环节都具备足够的防御能力,以抵御各种潜在的攻击。
Spring Boot项目如何优雅的实现接口参数校验
背景:在java后端项目开发过程中,其实有很多大一部分项目,后端都没有做接口参数校验,或者做了参数校验,但是实现方式都是简单的使用if判断;主要原因在于:API的参数校验目前缺少比较流行的方案、现有方案不适用与自己的项目、项目部署在内网要求不高、或者干脆参数校验这种事情丢给前端来做 hibernate-validator hibernate-validator是Hibernate项目中的一个数据校...
幂等性校验
幂等性校验:基于spring boot 的拦截器功能+ redis
前后端分离,使用vue3整合SpringSecurity加JWT实现登录认证
前段时间写了一篇spring security的详细入门,但是没有联系实际。所以这次在真实的项目中来演示一下怎样使用springsecurity来实现我们最常用的登录校验。本次演示使用现在市面上最常见的开发方式,前后端分离开发。前端使用vue3进行构建,用到了element-plus组件库、axios封装、pinia状态管理、Router路由跳转等技术。后端还是spring boot整合springsecurity+JWT来实现登录校验。
唯一值校验的实现思路(续)
本文接着上一篇文章,在后端实现唯一值校验。
273



被折叠的 条评论
为什么被折叠?



