服务端参数校验(一):校验工具

news/2024/7/8 4:49:30

项目参见:

https://gitee.com/xxssyyyyssxx/validation

compile "top.jfunc.validation:validation-core:1.0.1"
compile "top.jfunc.validation:validation-spring:1.0.1"

all input is evil!!

服务端参数校验是保证数据一致性和避免脏数据的最后关口,必须保证参数符合要求才能通过,所以参数校验及其重要。参数校验说白了就是对输入值进行判断,如果符合预期,那么就让通过,否则直接抛出异常。基于此,在gitee上遇到了实现此想法的非常好的项目。https://gitee.com/fetech-framework/smart-validator 。在此项目基础上做了一些优化形成自己的项目:https://gitee.com/xxssyyyyssxx/validation。优化的地方主要为:

  1. 命名优化,比如ValidateUtils->ValidateValue,is->with使意义更明确
  2. 正则表达式使用Pattern缓存
  3. 去除ParamException异常,使用IllegalArgumentException替代
  4. 小bug修复。

使用方式为:

ValidateValue.with(jsonObject.getString("name")).notNull("名字不允许为空")
                .and(jsonObject.getString("idCard")).notNull("身份证不允许为空")
                .and(jsonObject.getString("cardFront")).notNull("身份证正面照片不允许为空")
                .and(jsonObject.getString("cardBack")).notNull("身份证反面照片不允许为空");

 


http://www.niftyadmin.cn/n/3568777.html

相关文章

服务端参数校验(二):SpringMVC项目的参数校验

项目参见: https://gitee.com/xxssyyyyssxx/validation compile "top.jfunc.validation:validation-core:1.0.1" compile "top.jfunc.validation:validation-spring:1.0.1" 上文提供了参数校验工具,但是如果我们把参数校验跟正常…

关于类初始化的一个诡异问题

圣思园张龙老师关于类加载器的一个例子。 这个打印的是1,1 这个打印的是1,0 造成以上的区别的原因就在于:类加载的时候先准备(静态变量赋默认值),然后初始化(赋值或者静态代码块),实例化。 类的…

记录定时任务迁移xxl-job的过程和理解

一般定时任务使用的是基于quartz或者spring-scheduler的,能够满足大部分的开发需求。但是像手动执行一次,执行情况监测,进程阻塞停止等维护需求就显得无能为力了。无意间在gitee.com上发现了一个很好满足以上需求的项目,来自许雪里…

vsftpd 安装过程记录

使用yum安装,执行安装命令:yum install -y vsftpd 安装FTP服务器 创建FTP用户和FTP的目录,并修改FTP目录的权限给FTP用户 创建用户: 重置密码: 创建FTP目录: 授权FTP目录权限给camera用户: 修改目录用户组执行权限: 进入/et…

NFS网络的搭建和迁移

以前的NFS服务器在192.168.0.50 ${oldserverip},在新机器192.168.0.100 ${newserverip}上安装NFS服务,迁移数据到新主机上,然后启动NFS服务,其他的客户端全部重新挂载到新的NFS网络。 保持挂载目录和以前完全一样: 以…

lduan Exchange 2013 部署(二)

转载于:https://blog.51cto.com/tblduan/1899182

从使用os.system)在python命令(重定向标准输入输出

从使用os.system)在python命令(重定向标准输入输出 python 标准输出stdout stdio os.system通常我可以通过改变sys.stdout的值在python更改标准输出。然而,这似乎只影响打印那么,有没有什么办法可以抑制方案是通过使用os.system在…

OutputStream与PrintWriter的使用与区别

1.OutputStream 使用步骤: 获取输出流设置中文将字符串转换成字节数组调用outputStream.write()这里只贴出doGet方法的内容: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {/…