这是一个服务端自动验证框架,可以对JavaBean中的属性以及方法中参数列表进行自动验证

默认支持的验证规则

MaxLengthValidate           验证最大长度
MaxValueValidate            验证最大值   
MinLengthValidate           验证最小长度  
MinValueValidate            验证最小值   
NotNullValidate             验证非空
RangeLengthValidate         验证长度范围  
RangeValueValidate          验证值范围   
RegexpValidate              验证正则规则

第一种方式:验证JavaBean

@ValidateBean
class JavaBean{

    //非空验证
    @NotNullValidate
    private String property1;

    //value的范围验证
    @RangeValueValidate(min="1", max="120")
    private Integer property2;

    //集合的长度验证
    @MinLengthValidate(length=1)
    //list中的AnotherJavaBean对象会递归验证
    private List<AnotherJavaBean> list;

}

@ValidateBean
class AnotherJavaBean{

    @NotNullValidate
    private String subProperty1;

    @RangeValueValidate(min="1", max="120")
    private Integer subProperty2;

}


SmartValidate.validate(new JavaBean());

第二种方式:验证方法参数

1 在方法中加入验证规则注解

public void method(
           @ValidateArgument(
                   notNull=@NotNullValidate,
                   maxLength=@MaxLengthValidate(length=1)
           )
           /** 验证单个参数 **/ 
           String argument,
           /** 验证JavaBean **/
           JavaBean javaBean) {

 }

2 配置

<aop:config>
    <!-- pointcut 配置成需要拦截的路径 -->
    <aop:advisor pointcut="execution(*.*(..))" advice-ref="smartValidateInterceptor"/>
</aop:config>
<bean id="smartValidateInterceptor" class="com.smart.validate.interceptor.SmartValidateInterceptor" />

拓展验证规则

1 定义自己的验证注解

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomerValidate {
    String message () default "";

    String name () default "";

}

2 实现自定义验证规则

public class MatchCustomerValidate extends AbstractMatchValidate<CustomerValidate >{
    @Override
    public void validate(CustomerValidate t,
            String fieldName,
            Object value)
            throws SmartValidateException {

        //your code
    }

3 生效自定义验证规则

ValidateRulePool.mount(CustomerValidate.class, new MatchCustomerValidate());

Maven依赖

<dependency>
    <groupId>com.smart.validate</groupId>
    <artifactId>smart-validate</artifactId>
    <version>1.1-SNAPSHOT</version>
</dependency>

源码

https://github.com/lichao4Java/smart-validate

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值