原创

Java开源可扩展数据验证框架之OVAL

Java开源验证框架Oval是一个可扩展的Java对象数据验证框架,功能强大使用简单,验证规则可通过配置文件、注解等方式进行设置,规则的编写可以使用纯Java、JavaScript 、Groovy 、BeanShell等语言。下面本站素文宅www.yoodb.com为大家举例简单介绍一下如何使用Oval数据验证框架,本文仅供大家参考使用。

Oval官方地址: http://oval.sourceforge.net/,如果想了解具体Oval可以去官网看一些相关资料

工程实现Oval需要依赖相应的Jar包,本文采用maven工程在pom.xml文件中增加如下内容:

<dependency>
    <groupId>net.sf.oval</groupId>
    <artifactId>oval</artifactId>
    <version>1.81</version>
</dependency>

实现Oval实体对象类,用户的年龄和名字进行校验,具体代码如下:

public class OvalTest {
    @Min(18)
    private int age;
    @Length(min = 6, max = 12)
    private String name;
    
    public static void main(String[] args) {
OvalTest ovalTest = new OvalTest();
ovalTest.age = 12;
ovalTest.name = "yoodb";

Validator validator = new Validator(); 

List<ConstraintViolation> ret = validator.validate(ovalTest);
System.out.println(ret);
    }
}

执行main函数后,输出结果如下:

[net.sf.oval.ConstraintViolation: 
    OvalTest.age cannot be smaller than 18.0, 
 net.sf.oval.ConstraintViolation: 
    OvalTest.name is not between 6 and 12 characters long]

Oval支持很多类型注解,场景不同使用的注解也有不同,具体注解包含如下:

字符类型

@AsserURL、@Email、@Length、@MaxLength、@MinLength

@NotNull、@NotBlank、@NotEmpty、

@Digits、@HasSubstring

数值类型

@Range、@Max、@Min、@NotNegative

布尔类型

@AssertFalse、@AssertTrue

集合数组

@Size、@MaxSize、@MinSize、@MemberOf、@NotMemberOf

表达式或自定义

@Assert、@CheckWith、@NotMatchPatternCheck,@MatchPatternCheck、

@ValidateWithMethod

自定义注解,此处省略,如果想了解可在本站素文宅搜索。

~阅读全文-人机检测~

微信公众号“Java精选”(w_z90110),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信