轻量级服务端校验框架
支持注解、功能齐全、使用简便
主要提供便捷的后台数据校验功能,支持单个字段或参数校验,也支持通过注解校验对象,用法简单。
提供基本的非空、长度、大小等校验方法,也提供一些特殊的正则校验、身份证、电话、邮箱、IP等校验方法。
目前提供以下校验方法,支持后续持续扩展
注解 | 说明 |
---|---|
NotNull | 非空校验 |
Max | 最大值校验 |
Min | 最小值校验 |
MaxLength | 最大长度校验,支持集合、数组长度校验 |
MinLength | 最大长度校验,支持集合、数组长度校验 |
IdCard | 身份证校验 |
邮箱格式校验 | |
Phone | 手机号校验 |
IP | IP地址校验 |
Chinese | 中文校验 |
English | 英文校验 |
Regex | 自定义正则校验 |
Date | 日期格式校验 |
ValidateUtils.is("a").notNull(); ValidateUtils.is("test").maxLength(20).minLength(4); ValidateUtils.is(50).min(20).max(60);
通过and()支持连写(连写直接切换校验对象)
ValidateUtils.is("a").notNull().and("test").maxLength(20).minLength(4).and(50).min(20).max(60);
支持自定义错误信息
ValidateUtils.is("test").maxLength(20,"最大长度不能超过20个字").minLength(4,"最小长度不能少于4个字");
在类的属性上定义注解,同时支持自定义错误信息
public class User { @NotNull(msg = "姓名不能为空") @MaxLength(value = 20,msg = "姓名不能超过20个字") private String name; private Date birthday; @IdCard private String idcard; @Max(30) @Min(12) private int age; @Email @MaxLength(50) private String email; @Phone private String phone; @Regex("[1-9]([0-9]{5,11})") private String qq; //get... set.. }
然后调用ValidateUtils.check()方法即可
try { //.... ValidateUtils.check(user); //..... }catch (ParamsException e){ throw e; }catch (Exception e){ //... }
同样支持连写
ValidateUtils.check(user).and("2017-06-05").date("yyyy-MM-dd");
校验不通过会抛出ParamsException(运行时异常)
使用时一般不需要特殊处理,由于后台校验是安全性校验,一般用于拦截非法操作,所以不用友好提示,所以推荐不做任何捕获或者特殊处理,如外层有catch,建议单独捕获后向上抛出。
如果想做异常捕获,也可以自行在代码中添加try/catch(不推荐),或者添加全局的拦截器捕获该类异常。
获取最新版本的jar包即可-下载地址,然后添加进项目的依赖库中。
项目使用maven构建,也可以下载源码自行编译
1.7.13 2.6 3.2.2 1.9.3 org.slf4j slf4j-api ${slf4j.version} org.slf4j slf4j-log4j12 ${slf4j.version} commons-lang commons-lang ${commons.lang.version} commons-collections commons-collections ${commons.collections.version} commons-beanutils commons-beanutils ${commons.beanutils.version}
melon-idfactory 传送门
原文链接:https://dl.acm.org/doi/10.1145/3318464.3389693 相关预备知识文章: [1]Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Fe
关键字:Netty BFT-SMaRt Channel findCache KeyLoader Bootstrap NioEventLoopGroup ChannelFuture 视图 Netty是目前最高效便捷的NIO框架。Netty可提供更加高可用、更好健壮性的稳定大规模连接的IO通道。任何一款区块链早期的技术产品,都是从联盟链开始演进,因为联盟链降低了很多原教旨的难度。回到BFT-SMaRt
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServe
Hyperledger Fabric v1.4(LTS) 系列(5.4):Developing Applications-Smart Contract Processing Smart Contract Processing Audience: Architects, Application and smart contract developers At the heart of a block
https://github.com/PhABC/EIPs/blob/is-valid-signature/EIPS/eip-1271.md Standard Signature Validation Method for Contracts eip title author discussions-to status type category created 1271 Standard Sig
问题1: # python manage.py syncdb Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/root/python/second_program/venv/lib/python2.
Jenkins Pipeline插件有一个称为“轻量级签出”的功能,其中主服务器仅从repo中提取Jenkinsfile,而不是整个repo。配置屏幕中有一个相应的复选框。我想在多分支管道中进行轻量级签出,但我在多分支配置屏幕中没有看到复选框。有什么想法如何实现这一点吗?我注意到一些关闭的问题表明此功能可用,但我无法找到任何有关如何实现它的细节。 相关资料: https://issues.jenk
问题内容: 我发现自己需要为数据字符串生成校验和,以实现一致性。广泛的想法是,客户端可以根据接收到的有效载荷来重新生成校验和,从而检测到传输中发生的任何损坏。我模糊地意识到,这种事情背后存在着各种各样的数学原理,如果您自己动手操作,细微的错误很容易使整个算法失效。 因此,我正在寻找符合以下条件的哈希/校验和算法的建议: 它将由Javascript生成,因此在计算上需要相对较少。 验证将由Java完
本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻
本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,
问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha
问题内容: 是否有任何Java库允许构建没有任何应用程序服务器框架的简单独立Web服务服务器? 问题答案: Java 6包含JAX-WS,这使得在独立应用程序中托管Web服务非常容易: