微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spv 简单的 Spring 参数验证库

程序名称:spv

授权协议: apache 2.0

操作系统: 跨平台

开发语言: Java

spv 介绍


springmvc springboot 简单轻量好用的参数验证。支持基本类型查参数验证。支持自定义注解的参数验证。使用简单方便。

使用4步配置

1、导入jar

        <dependency>
            <groupId>com.github.fashionbrot</groupId>
            <artifactId>mars-validated</artifactId>
            <version>1.0.0</version>
        </dependency>

2、使用注解

2.1 springboot 配置

@SpringBootApplication
@EnableValidatedConfig(fileName = valid_zh_CN)
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

2.2 spring配置

@Component
@Configuration
@EnableValidatedConfig(fileName = valid_zh_CN)
public class Config {


}

3使用 @Validated 开启接口验证 @Email验证邮箱格式

@Controller
public class DemoController {

    @Autowired
    private TestService testService;


    @RequestMapping(/emailCheck)
    @ResponseBody
    @Validated //注意此处
    public String demo(@Email String abc,){
        return testService.test(abc);
    }

}   
@Controller
public class DemoController {

    @Autowired
    private TestService testService;


    @RequestMapping(/idcardCheck)
    @ResponseBody
    @Validated
    public String demo(IdCardModel idCardModel){
        return testService.test(ac);
    }

    @RequestMapping(/idcardCheck2)
    @ResponseBody
    public String demo2(IdCardModel idCardModel){
        return testService.test2(ac);
    }


}

**此处支持多继承验证***

public class IdCardModel extends BaseModel{

    @IdCard
    private String idCardModel;

    public String getIdCardModel() {
        return idCardModel;
    }

    public void setIdCardModel(String idCardModel) {
        this.idCardModel = idCardModel;
    }

}

@Service
public class TestService{

    @Validated
    public void test2(@IdCard String abc){

    }

}

4 自定义实现全局异常处理

拦截 com.fashion.spv.validated.exception.ValidatedException

@RestControllerAdvice
public class GlobalExceptionHandler {


    @ExceptionHandler(ValidatedException.class)
    @ResponseStatus(HttpStatus.OK)
    public RespMessage ValidationException(ValidatedException e){

        return new RespMessage(-100,e.getMsg());
    }

}

validated 参数验证

使用环境

spring4.0 及以上
jdk1.8 及以上

@H_502_39@
AnnotationSupported data types作用
NotBlankString验证String 字符串是否为空
NotNullString,Object,Integer,Long,Double,Short,Float,BigDecimal, BigInteger验证对象是否为空
AssertFalseBoolean,boolean,String只能为false
AssertTrueBoolean,boolean,String只能为true
BankCardString验证银行卡
CreditCardString验证信用卡
DefaultInteger,Double,Long,Short,Float,BigDecimal,String设置认值
DigitsString验证是否是数字
EmailString验证是否是邮箱
IdCardString验证是否是身份证,验证18岁
Lengthint,long,short,double,Integer,Long,Float,Double,Short,String验证长度
PatternString正则表达式验证
PhoneString验证手机号是否正确
Sizeint,long,short,Integer,Long,Short验证大小值

支持自定义注解 如下:

1、实现  ConstraintValidator 此接口
2、自定义注解如下:  CustomConstraintValidator.class,CustomConstraintValidator2.class 实现类可多个,至少有一个

    @Documented
    @Target({ElementType.FIELD,  ElementType.ParaMETER})
    @Retention(RetentionPolicy.RUNTIME)
    @Constraint(validatedBy = {CustomConstraintValidator.class,CustomConstraintValidator2.class})
    public @interface Custom {

        String msg() default com.spv.valid.Custom.msg;

        int min();
    }


3、代码实现



public class CustomConstraintValidator implements ConstraintValidator<Custom,String> {

    @Override
    public boolean isValid(Custom custom,String var1) {
        /**
         * 自定义方法
         */
        int min=custom.min();
        /**
         * value
         */
        System.out.println(var1);
        /**
         * return true 则验证成功 false 验证失败
          */
        return true;
    }
}

spv 官网

https://github.com/fashionbrot/mars-validated

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐