参数校验框架使用说明

简介

在web项目和service项目中,有许多校验参数并返回结果的代码,比如:

屏幕快照 2018-01-16 下午5.27.49

这种校验代码比较冗长,费时费力且影响代码可读性。为此,提供一套参数校验框架,通过注解进行参数校验。

thor:1.4.57-RELEASE

配置方式

spring配置文件中配置AOP:
<aop:aspectj-autoproxy proxy-target-class="true"/>

<bean id="validateAspect" class="com.aixuexi.thor.validate.aspect.ValidationAspect"/>

<aop:config>
    <aop:aspect ref="validateAspect">
        <aop:around method="around" pointcut="execution(* com.aixuexi..*.*(..))"/>
    </aop:aspect>
</aop:config>
注意:web项目只能在springmvc的配置文件中配置。

使用方式

一、校验model域

1、在形参上加 @Validate 注解,表示该参数需要校验。groups参数表示校验组。
@RequestMapping(value = "/not_null", method = RequestMethod.GET)
@ResponseBody
public ResultData test(@Valid(groups = Group.WEB) PageParam pageParam) {
    return new ResultData("invoke success!");
}
2、在model域上添加校验注解,groups的值与@Validate注解groups的值有交集时才触发校验。
public class PageParam implements Serializable {

    @NotNull(groups = {Group.WEB}, successMessage = "ABC validate success")
    private Integer pageNum;
}

 二、校验形参

在形参上加校验注解,表示该参数需要校验。
@RequestMapping(value = "/not_null", method = RequestMethod.GET)
@ResponseBody
public ResultData test(@NotNull(errorMessage = "str1不能为null!") String str) {
    return new ResultData("invoke success!");
}

注解说明

注解
支持类型
说明
@Valid
Object
表示方法形参需要校验;
表示POJO对象需要校验;
表示Collection中的对象需要校验;
@Null
Object
必须为null
@NotNull
Object
不能为null
@Assert
Boolean
是否为true或false
@Range
Number
数字是否在区间内
@NotBlank
String
字符串不为空串
@Pattern
String
字符串是否匹配正则表达式
@ValidStr
String
字符串是否合法(仅含数字、英文、汉字、下划线)
@Length
String
字符串长度是否在区间内
@Telephone
String
字符串是否为手机号格式
@Email
String
字符串是否为email格式
@NotEmpty
Collection
集合是否为空
@Furture
Date
日期是否为未来时间
@Past
Date
日期是否为过去时间

目录机构

 参数校验框架目录结构

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注