美文网首页
自研校验器工具类—Java语言实现

自研校验器工具类—Java语言实现

作者: agile4j | 来源:发表于2019-03-06 15:02 被阅读2次

作者:刘仁鹏
GitHub地址:https://github.com/LingPaicoder/agile-base-4j

转载请注明出处


1. 简介

  • 之前为大家介绍过用Kotlin语言实现的校验器版本。但大家工作中,很多时候都是使用Java语言进行开发。所以这里再介绍一下校验器的Java语言实现。
  • 功能与Kotlin的版本差别不大,但受语言的影响,特性上会有所不同。
  • 首先还是介绍一下校验器的功能。
    它是一款用于做 参数上下文校验 的工具类。说起校验器,大家比较熟悉的是Java的BeanValidation规范。但BeanValidation规范是用于做 参数字面值校验 的,即只能对 参数本身的值 做某种规则性的判断,如果需要对参数进行某种运算后的结果(例如算数运算、DB操作等)进行规则判断,就无法实现了。
    这种对 参数进行某种运算后的结果 进行校验的方式,我把它称作 参数上下文校验。而本文要介绍的校验器就是为了解决这种应用场景而生的。
  • 先来看一下校验器实际使用时的效果吧,这是一个对参数是否符合身份证号规则进行判断的方法:
public boolean valide(String idCard) {
    try {
        CheckUtil.check(idCard, StrRuler.notNull(), StrRuler.lengthEq(18));
        String front17Part = idCard.substring(0, 17);
        CheckUtil.check(front17Part, StrRuler.num());
        String lastStr = getLastCharByFront17Part(front17Part);
        CheckUtil.check(lastStr, StrRuler.eq(idCard.substring(17)));
        return true;
    } catch (CheckException e) {
        return false;
    }
}
  • 代码中的第3、5、7行就是三次校验动作,这里通过CheckUtil的check方法,对校验目标进行规则校验,简化代码,提高可读性。
  • 这里要额外说明一点的是,因为Java代码对null一般都需要额外处理,这里校验器也遵循这个约定,所有的内置的非nutNull规则,当校验目标为null时都按校验通过处理,因此当校验目标要求不能为null时,需要显式的通过notNull规则标识,这一特性与Kotlin的实现版本不同,需要特别注意。
  • 接下来就一起看一下对校验器更全面的介绍。

2.特性

下面这个图是校验器的特性总览。

wx.jpg

相关文章

  • 自研校验器工具类—Java语言实现

    作者:刘仁鹏GitHub地址:https://github.com/LingPaicoder/agile-base...

  • 自研校验器工具类—Kotlin语言实现

    作者:刘仁鹏GitHub地址:https://github.com/LingPaicoder/agile-base...

  • Java业务校验工具实现(续集)

    一、背景 在前面的文章分享了一篇自已关于Java业务校验工具的实现Java业务校验工具实现,后面本着“不要重复造轮...

  • Java8新特性

    Java 8可谓是自Java 5以来最具革命性的版本了,她在语言、编译器、类库、开发工具以及Java虚拟机等方面都...

  • Kotlin 与 Java 8 的重要新特性以及 Java 9、

    Java 8可谓是自Java 5以来最具革命性的版本了,她在语言、编译器、类库、开发工具以及Java虚拟机等方面都...

  • Java8简介

    Java 8可谓是自Java 5以来最具革命性的版本了,她在语言、编译器、类库、开发工具以及Java虚拟机等方面都...

  • Springboot整合Urule

    摘要: Urule决策引擎可简化开发校验、决策类代码,底层由java语言实现,可基于SpringBoot快速配置,...

  • 乱七八糟的基础知识

    JAVA编译过程 源文件—>java编译器—>字节码文件—>(类装载器—>字节码校验器—>解释器)—>系统平台 字...

  • Proguard首次学习

    参考 简介 可以对java类文件(不只是java语言生成的java类文件奥),进行压缩,优化,混淆,预校验。 压缩...

  • 自研日志打印器工具类

    作者:刘仁鹏GitHub地址:https://github.com/LingPaicoder/agile-base...

网友评论

      本文标题:自研校验器工具类—Java语言实现

      本文链接:https://www.haomeiwen.com/subject/nvotpqtx.html