当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

spv

简单的 Spring 参数验证库
授权协议 未知
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 田博超
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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 及以上

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;
    }
}
  • 概览 区块链网络中,节点一般分为: 全节点 轻节点 SPV节点 SPV与轻节点 不同点: SPV节点: 目的是验证一笔交易是否上链、是否得到多个确认。 轻节点:节点本地保存与其自身相关的交易数据,目的不仅仅是验证交易,还有管理节点自身的资产收入、支付等信息。 共同点: SPV节点和轻节点都无需在本地保存全部数据 理解SPV的支付验证含义 SPV节点进行的是支付验证,而不是交易验证。 交易验证:(复

  • 一、什么是SPV SPV是“Simplified Payment Verification”(简单支付验证)的缩写。中本聪论文简要地提及了这一概念,指出:不运行完全节点也可验证支付,用户只需要保存所有的block header就可以了。用户虽然不能自己验证交易,但如果能够从区块链的某处找到相符的交易,他就可以知道网络已经认可了这笔交易,而且得到了网络的多少个确认。 按照中本聪的原文,这里有个细节需

  • SPV验证 在bitcoin中被首次使用,本文就针对bitcoin中的SPV验证来介绍。 区块结构 区块头header+区块体body 区块头:版本号、随机数、挖矿难度、前一个区块头的哈希、Merkle根(交易列表计算而成的) 区块体:交易列表 轻客户端 全节点( Full Node )和轻客户端( Thin Client ):全节点是一个程序,例如中本聪自己写的 Bitcoin Coin ,这个

  • 每次将shader转为spv都需要通过命令行执行指令,真是太麻烦了,因此顺手写了一个小程序,使用非常简单,将要转换的着色器文件拖动到小程序上就可以了。 源码如下: #include <iostream> #include <list> #include <set> int main(int argc, char** argv) { std::set<std::string> setExtens

 相关资料
  • 问题内容: 我在Spring Web MVC 3.0中运行一个webapp,我有许多控制器方法,其签名大致如下: 我想添加一些验证-例如,应限制为一定长度或仅包含某些字符。如果验证失败,我想向用户返回一条消息,而不是抛出一些未经检查的异常(如果我让数据渗透到DAO层,无论如何都会发生这种情况)。我知道JSR303,但尚未使用它,也不太了解如何在Spring上下文中应用它。 据我了解,另一种选择是将

  • 问题内容: 我需要一个简单的php库,该库可用于轻松地将规则和字段名传递给它,然后可以轻松执行验证。还应该有一种简单的方法来检索错误。 有什么建议么? 问题答案: 我编写了自己的简单类,将多年来收集的一些正则表达式与PHP的sanatize和filter函数结合在一起。 现在,这需要在此处看到的某些javascript的mootools,但是您可以轻松地将其更改为您喜欢的javascript框架。

  • 我正在使用Spring Boot编写Restful APIendpoint。我想创建登录/注销功能。我不想使用Spring boot默认登录页面。 根据我的理解,一个简单而安全的方法是: 客户端为服务器提供用户名和密码 服务器会发回身份验证代码,用户可以使用该代码对APIendpoint进行后续调用 身份验证码在用户注销/经过一定时间后才有效

  • 本文向大家介绍jquery实现简单的表单验证,包括了jquery实现简单的表单验证的使用技巧和注意事项,需要的朋友参考一下  jquery如何实现简单的表单验证,我们先跟大家分享一下实现思路。 大概思路: 先为每一个required添加必填的标记,用each()方法来实现。 在each()方法中先是创建一个元素,然后通过append()方法将创建的元素加入到父元素后面。 这里面的this用的很精髓

  • 参数验证功能 1 是基于 JSR303 实现的,用户只需标识 JSR303 标准的验证 annotation,并通过声明 filter 来实现验证 2。 Maven 依赖 <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.

  • 本文向大家介绍asp.net验证码的简单制作,包括了asp.net验证码的简单制作的使用技巧和注意事项,需要的朋友参考一下 实际上关于asp.net验证码制作的文章已经很多很多了,但是今天还是要和大家继续分享,亲,可以综合几篇实例,编写出适用于自己网站的ASP.NET验证码,大概也就两大部分: 先建立一个asp.net窗体ValidateCode.aspx;不写任何东西。直接在后台Validate