验证框架初步用法

转至元数据结尾
转至元数据起始

目前valida(暂时想的挫名)支持多种验证方式,可以使用annotation的注解轻松地验证方法的参数。

该项目的maven依赖为:

<groupId>com.meidusa.toolkit</groupId>

<artifactId>toolkit-validation</artifactId>

<version>1.0.1</version>

《暂定》

之前作为venus的validation子项目仅仅用于校验venus接口调用中的参数验证。经过升级后通过配置可以依托spring aop做到接口的入参验证。

举例:

public interface AInvoke {

 

@Expression("aStr.equals(\"aaa\")")

void invoke(@Param(name = "aStr") @StringLength(minLength = 1, maxLength = 5) String s);

 

}

此接口要求传入的s长度大于等于1且小于等于5,同时接口规范要求符合表达式aStr.equals("aaa")。

需要注意@Param是可选的,如果没有制定@Param,那么该参数s在校验中的名称为“param_0",依次类推更多参数的情况。

这样的情况下,只需要在spring中配置上aop相关内容,并且添加bean : AspectValidationHelper。那么就相当于开启了参数校验功能。

如果参数不符合要求,将会throw com.meidusa.venus.validate.exception.ValidationException.

spring配置sample如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util"

xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"

default-lazy-init="true" xmlns="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/util

http://www.springframework.org/schema/util/spring-util.xsd

http://www.springframework.org/schema/mvc   

    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"

default-autowire="byName">

<aop:aspectj-autoproxy />

<bean class="com.meidusa.toolkit.validation.AspectValidationHelper"></bean>

</beans>

目前支持的校验annotation:

Class Function Properties Target Annotation Type In Config
DateRangeFieldValidator 
验证日期类型是否满足区间
  • max 最大日期
  • min 最小日期
  • param
  • field
@DateRange 
date 
DoubleRangeFieldValidator
验证double类型大小
  • maxInclusive 最大包含
  • minInclusive 最小包含
  • minExclusive 最小不包含
  • maxExclusive 最大包含
  • param
  • field 
@DoubleRange 
double 
EmailValidator 
验证参数是否为email地址  
  • param
  • field 
@Email 
email 
ExpressionValidator 
验证所有参数是否满足表达式
  •  expression 表达式(比如 a=1 && b=2)
  • all param
  • specified object
@Expression 
expression 
FieldExpressionValidator 
验证某个参数是否满足表达式
  •  expression 表达式
  • param
  • field 
@Expression 
fieldexpression
IntRangeFieldValidator 
验证int类型大小
  • max 最大值
  • min 最小值
  • param
  • field 
@IntRange 
int 
LongRangeFieldValidator 
验证long类型大小
  • max 最大值
  • min 最小值
  • param
  • field 
@LongRange 
long 
RegexFieldValidator 
验证字符串是否满足正则表达式
  •  expression 正则表达式
  • param
  • field 
@Regex 
regex 
RequiredFieldValidator 
验证该参数是否不为空  
  • param
  • field 
@Required 
required 
RequiredStringValidator 
验证该参数是否为字符串  
  • param
  • field 
@RequiredString
requiredstring 
StringLengthFieldValidator 
验证该字符串是否满足长
  • maxLength 最大长度
  • minLength 最小长度
  • doTrim 是否截短字符串(去除空格等字符)
  • param
  • field 
@RequiredString
stringlength 
URLValidator 
验证改字符串是否为url  
  • param
  • field 
@URL 
url 
VisitorFieldValidator 
验证该类型(读取其特定类型的验证器,并且做更深一层的验证)
  •  path 子校验配置的路径(仅对文件配置有效)
  • param
  • field 
@Visitor 
visitor 
Enter labels to add to this page:
Please wait 
查找标签? 在此录入。