用Command实现校验器
最近工作中遇到许多校验的数据,一直用if-else去校验很不灵活,于是用Command方式去实现
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"default-autowire="byName"><bean id="uerVerification" class="com.steven.UserVerification" /><bean id="mobileVerification" class="com.steven.MobileVerification" /><bean id="codeVerification" class="com.steven.CodeVerification" /><bean id="orderVerification" class="com.steven.OrderVerification" /><bean id="orderVerificationMap" class="java.util.HashMap" > <constructor-arg><map><entry key="check" value-ref="orderVerification" /></map></constructor-arg></bean><bean id="codeVerificationMap" class="java.util.HashMap" > <constructor-arg><map><entry key="check" value-ref="codeVerification" /></map></constructor-arg></bean><bean id="mobileVerificationMap" class="java.util.HashMap" > <constructor-arg><map><entry key="check" value-ref="mobileVerification" /></map></constructor-arg></bean><bean id="uerVerificationMap" class="java.util.HashMap" > <constructor-arg><map><entry key="check" value-ref="uerVerification" /></map></constructor-arg></bean><!-- 实现类 --><bean id="gdActivityServiceInvoker" class="com.test.ServiceInvoke" ><property name="verifyMap"><map><entry key="checkUer" value-ref="uerVerificationMap" /> <entry key="checkMobile" value-ref="mobileVerificationMap" /><entry key="checkCode" value-ref="codeVerificationMap"/><entry key="checkOrder" value-ref="orderVerificationMap"/></map></property></bean></beans>
注:上述配置文件,可以灵活的使用校验器,也可以灵活的增加或者删除校验器,并且支持执行校验器特定的方法。
public abstract class ActivityServiceInvoker {/*** 校验参数* verifyType 表示特定的校验器*/public abstract ActivityResult checkParamter(String verifyType,ActivityParamter paramter);@SuppressWarnings({ "unchecked", "rawtypes" })public ActivityResult execute(Verification verification, String method, ActivityParamter paramter) throws Exception {Class clazz = verification.getClass();Method clzMethod = clazz.getDeclaredMethod(method,ActivityParamter.class);return (ActivityResult) clzMethod.invoke(verification, paramter);//执行特定的校验方法}}
每一个校验器可以继承ActivityServiceInvoker这个类,然后复写public abstract ActivityResult checkParamter(String verifyType,ActivityParamter paramter);这个方法即可。
public class OrderServiceInvokerImpl extends ActivityServiceInvoker{private LinkedHashMap<String,HashMap<String, Verification>> verifyMap;//可以灵活的注入校验器private static final Log LOG = LogFactory.getLog(OrderServiceInvokerImpl.class);public ActivityResult checkParamter(String verifyType,ActivityParamter paramter){//在这里进行数据校验return result;}public void setVerifyMap(LinkedHashMap<String, HashMap<String, Verification>> verifyMap) {this.verifyMap = verifyMap;}}
每一个实现类里,可以配置一个verifyMap来灵活的校验。
用Command实现校验器相关推荐
- 使用 Struts2 校验器校验用户注册信息的例子
转自:https://blog.csdn.net/jin2005006/article/details/53999562 基于验证框架的输入校验 一.创建一个struts2项目testValidato ...
- zend framework php编码规范,Zend Framework常用校验器详解
本文实例讲述了Zend Framework常用校验器.分享给大家供大家参考,具体如下: Date日期校验器 代码:<?php require_once 'Zend/Validate/Date.p ...
- @SkipValidation跳过Struts2validation校验器
在方法前加:@SkipValidation注解,该方法可以跳过validation校验器校验器 转载于:https://www.cnblogs.com/ITYOB/p/7475368.html
- 自定义的注解校验器的实现
首先先学习一下注解,注解为我们在代码中添加信息提供了一种形式化的方法,使得我们在稍后的某个时刻可以方便地使用这些数据. 在日常的编码中我们一直都在使用注解,只是没有特别关注过,Java中内置了三种注解 ...
- 数据校验器架构模式组
刘 岳林 (yuelin_liu@msn.com), 软件工程师 2007 年 1 月 15 日 本文阐述软件架构与设计模式,它为架构师和开发人员提供了一组关于数据校验的架构模式(隔离校验器,可组装校 ...
- struts2校验框架之Visitor校验器
Visitor校验器主要用于检测Action里的复合属性,如一个Action里面包含了User类型的属性. 假设User类包含了username和password属性,为了验证Action里User类 ...
- python参数检验框架_python-wtforms框架如何自定义校验器的原理和方法总结
细节请看注释,核心就是__call__函数的用法(def __call__(self,form, field)参数由继承的Form自动提供) from wtforms import Form, Str ...
- 字符串校验器 ExcelValidator.java
简介 字符串校验器.开发excel批量处理数据时开发使用,快速校验读取出的每一个单元格数据是否符合预定格式: api 目标字符串是目标数组中的一个 checkContains(String[] arr ...
- Zend Framework学习之常用校验器
Date日期校验器 代码: <?php require_once 'Zend/Validate/Date.php'; function c_date($date){$validator = ne ...
最新文章
- MySQL 数据库大小写的问题
- python画圆并填充图形颜色_如何使用python设计语言graphics绘制圆形图形
- android如何与服务器交互?
- .net控件FreeTextBox使用方法
- item不可见 recycleview_Android解决RecyclerView中的item显示不全方案
- [公告]博客迁移通知
- 项目管理九大知识领域过程逻辑关系图
- 【转载】《周一清晨的领导课》读书笔记!!!
- kettle配置资源库
- 多可文档管理的数据备份
- 椭圆检测(Ellipse Detection)算法
- 轨迹绕圈算法_基于三次B样条曲线拟合的智能车轨迹跟踪算法
- AI帮我画出了小说里的人物,我这么多年的小说好像白看了。。。
- ECharts 区域缩放组件使用详解
- execjs._exceptions.ProcessExitedWithNonZeroStatus
- 第一章 Adobe After Effects AE插件开发 SDK入门-AE内部结构定义(一)-版本
- Java函数式编程(基础):第一部分
- 青铜到王者,京东数科这个AI机器人组织有多野?
- string的erase用法
- RT-Thread创始人新年寄语: 开源如水、商业似船