# smart-validate
**Repository Path**: os-technology/smart-validate
## Basic Information
- **Project Name**: smart-validate
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-01-12
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
这是一个服务端参数验证框架,可以对JavaBean中的属性以及方法中参数列表进行验证
验证方式包含两种
1. 注解方式验证(主要针对bean的属性进行校验)
2. 拦截器方式验证(主要针对方法中的入参进行校验)
默认支持的验证规则
|验证类|说明|
|---|---|
|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 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. 配置
```xml
```
拓展
1 定义自己的验证注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CustomerValidate {
String message () default "";
String name () default "";
}
2 实现自定义验证规则
public class MatchCustomerValidate extends AbstractMatchValidate{
@Override
public void validate(CustomerValidate t,
String fieldName,
Object value)
throws SmartValidateException {
//your code
}
3 生效自定义验证规则
ValidateRulePool.mount(CustomerValidate.class, new MatchCustomerValidate());
Maven依赖
com.smart.validate
smart-validate
1.3-SNAPSHOT
org.springframework
spring-aop
4.1.0.RELEASE