简单的 Spring 参数验证库 spv

未知
Java
跨平台
2019-09-19
fashionbrot

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

使用4步配置

1、导入jar

        <dependency>
            <groupId>com.fashion.spv</groupId>
            <artifactId>validated</artifactId>
            <version>1.0-RELEASE</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 及以上

Annotation Supported data types 作用
NotBlank String 验证String 字符串是否为空
NotNull String,Object,Integer,Long,Double,Short,Float,BigDecimal, BigInteger 验证对象是否为空
AssertFalse Boolean,boolean,String 只能为false
AssertTrue Boolean,boolean,String 只能为true
BankCard String 验证银行卡
CreditCard String 验证信用卡
Default Integer,Double,Long,Short,Float,BigDecimal,String 设置默认值
Digits String 验证是否是数字
Email String 验证是否是邮箱
IdCard String 验证是否是身份证,验证18岁
Length int,long,short,double,Integer,Long,Float,Double,Short,String 验证长度
Pattern String 正则表达式验证
Phone String 验证手机号是否正确
Size int,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;
    }
}
的码云指数为
超过 的项目
加载中

评论(1)

l
liushengOS
我吐了, 你都么有发不到中央仓库,醉了,垃圾开源

暂无资讯

暂无问答

里程碑!Neutrino - 首款SPV型BCH钱包发布了!

3月17日,BCH开发者发布了首款SPV类型的BCH钱包“Neutrino”,我第一时间去体验了一下,果然很 文| Bruce Lee(转载请注明出处) 微信公众号: BCH爱好者BruceLee 序 3月17日,BCH开发者发布了...

07/25 11:11
5
0
区块链扩容最佳途径?十分钟讲清楚侧链技术

今天我们来讲区块链扩容的另一个主流方案——侧链,侧链可作为解决区块链扩容难题的一种有效解决方案。有些人认为,从理论上说,这种解决方案可让所有人都满意。 基础概念 侧链协议本质上是一...

2018/10/23 22:09
7
0
UCK区块链微课堂——解读SPV钱包和分层定性钱包,窥探钱包技术痛点

前言: 上篇文章我为大家讲解了什么是数字货币的钱包系统,并用比特币的钱包为例,向大家分析了核心钱包的优劣势。 核心钱包的优势在于其强大的安全性,劣势我在上篇文章的末尾处也为大家解释...

07/31 17:04
2
0
区块链中的密码学(4):Merkle树和SPV节点

### 什么是Merkle Tree? Merkle Tree 的命名来自于美国密码学家Ralph C. Merkle ,关于他的个人资料:传送门[https://en.wikipedia.org/wiki/Ralph_Merkle。](https://en.wikipedia.org/wi...

02/14 13:58
2
0
代码保护软件 VMProtect 3.3已将Taggant System移除

VMProtect通过在具有非标准体系结构的虚拟机上执行代码来保护代码,这将使分析和破解软件变得十分困难。除此之外,VMProtect还可以生成和验证序列号,限制免费升级等等。 本篇文章主要是想告...

03/05 16:23
1
0
且看大牛十分钟讲清楚区块链侧链技术

最近,区块链技术引起了广泛关注。虽然区块链技术目前正在快速发展,但是传统区块链技术要落地到商业应用,特别是金融应用,仍然存在很多问题需要解决,如交易性能、隐私保护等。解决这些问题...

2018/11/13 21:30
10
0
比特币SPV节点通信流程图

比特币SPV节点通信流程 图小点击右键在新窗口打开

2018/08/08 18:37
48
0
比特币SPV节点启动流程图

比特币SPV节点启动流程图 图小点击右键在新窗口打开

2018/08/08 18:35
52
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部