`
hatedance
  • 浏览: 59532 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Java的通用参数验证机制

阅读更多

在开发中,其实经常要对输入参数进行检验。比如对于login(userid,password)要检查

if(userid.length<4 || password.length<6)

throw runtimeexception.

如果接收的是一个对象参数,save(User user),也要进行检验,一般的土办法是如下:

if(user.getName().isEmpty())

return false;

....

当然,对参数进行检验是一件很烦人的事情。大多数情况下,只在系统的前端进行检验。以一般SSH web系统为例,MVC层是需要参数检验的,到了service和dao层一般就不需要了,它们假设controller层做了足够的检验了。除了MVC,还有其他场景,比如excel文件导入,web service远程调用等。总之,凡是在系统边界处的输入参数都要检验。

 

最近我才了解到,在java里有一个通用的validation机制,可以对pojo对象,或者说java bean进行数据验证。Spring也对其进行支持。参见http://static.springsource.org/spring/docs/2.0.x/reference/validation.html。

内容概括如下,

  1. 通过PropertyEditor可以把各种String转化为整数,枚举,浮点等基本类型。也可以自定义Editor。为什么要这样做呢,因为系统间的交互,往往是String方式传输。比如xml,csv,http request。
  2. 可以自定义Validator进行一对一的检验,也支持注解声明。

总之,这套通用的验证机制,结合资源文件,统一了原本复杂或者混乱的验证办法。回忆一下曾经在Struts1下的form验证,sprign mvc的controller验证,其实都可以转化为对pojo的验证。

 

分享到:
评论

相关推荐

    java通用注解API

    Java通用注解API是Java编程语言中的一个重要组成部分,它提供了一种元数据的方式来标注代码,使得编译器、工具和运行时系统能够处理这些信息。注解在Java中扮演着元编程的角色,允许开发者在不改变程序执行逻辑的...

    JAVA中使用LDAP进行用户认证

    JAVA中使用LDAP进行用户认证 JAVA中使用LDAP进行用户认证是指在JAVA应用程序中使用轻量级目录访问协议(LDAP)来...使用LDAP进行用户认证可以提供一个可靠、可用、可复制的身份验证机制,适合用于各种JAVA应用程序中。

    Java中的反射机制Reflect

    在Java中,`java.lang.Class` 类是所有类的通用表示,它代表了Java运行时的类信息。你可以通过以下方式获取到一个类的Class对象: 1. 使用 `Class.forName("全限定类名")`,例如 `Class&lt;?&gt; clazz = Class.forName(...

    JAVA_API1.6文档(中文)

    java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...

    基于Java的两个通用安全模块的设计与实现.zip

    "基于Java的两个通用安全模块的设计与实现"这一主题涵盖了Java安全性的核心概念,包括如何设计和实施有效的安全策略。在这个项目中,开发者可能关注的是身份验证、授权、加密、防止SQL注入和XSS攻击等方面。 首先,...

    Apla→Java程序生成系统中泛型机制实现方法研究.pdf

    在Apla到Java的生成系统中,研究者不仅保留了原有的类型参数化机制,还引入了action参数化和ADT(Abstract Data Type)参数化的泛型机制。Action参数化允许将函数、过程或其他程序单元作为泛型的参数,增加了泛型的...

    Java课程设计通用信息管理系统

    尽管这个通用信息管理系统在某些方面尚未完成,如用户角色管理和系统参数设置,但已经覆盖了大量Java开发的基础和高级知识点,为学习者提供了一个很好的实践平台。通过不断完善这些功能,开发者可以进一步提升其在...

    java 利用POI对Execel表格的统一导入与校验(利用Hibernate Validator)

    5. **统一的导入与校验**: 在描述中提到的"统一封装"意味着创建一个通用的导入机制,这个机制可以接受不同的Excel模板,并根据预定义的校验规则进行数据验证。这样做可以提高代码的复用性,减少开发工作量,使得新...

    Java 1.6 API 中文 New

    org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发人员通过利用统一的 API 使用一些来自各种基础安全机制(如 Kerberos)的安全服务,如验证、数据完整性和和数据机密性。 org.omg.CORBA 提供 OMG CORBA API ...

    基于Java的两个通用安全模块的设计与实现.rar

    基于Java的两个通用安全模块设计与实现如下: 加密模块: 功能描述: 加密模块提供了通用的加密算法和相关功能,用于对数据进行保护和安全传输。 它支持对文本、文件等各种类型的数据进行加密,并提供了多种常用的...

    java代理机制

    Java代理机制是Java语言提供的一种强大的工具,允许开发者在运行时动态创建代理类,这些代理类可以作为现有对象的代理,以便在调用实际对象的方法时进行额外的操作。这一机制主要基于两个核心组件:`java.lang....

    Java反射机制概述.zip

    8. **注解处理(Annotation Processing)**:反射也可以用来检查类、方法或字段上的注解,这对于实现元数据驱动的设计或验证机制非常有用。 9. **安全性与性能(Security and Performance)**:虽然反射提供了极大...

    Java通用型支付+电商平台双系统实战

    ### Java通用型支付+电商平台双系统实战 #### 一、项目背景与目标 在当前互联网经济背景下,电商平台作为连接商家与消费者的桥梁,其重要性不言而喻。与此同时,支付系统作为电商交易的核心环节,其稳定性与安全性...

    Java反射机制

    Java反射机制是Java编程语言中的一个重要特性,它赋予了程序在运行时检查和操作类、接口、字段和方法的能力。这种动态类型的行为使得Java在某种程度上具有了类似于Perl、Python和Ruby等动态语言的特性,虽然它本身是...

    基于Java的两个通用安全模块的设计与实现(源代码+文).zip

    本资料主要关注的是基于Java的两个通用安全模块的设计与实现。Java作为一种广泛使用的编程语言,具有强大的安全特性,但仍然需要开发者通过精心设计的安全模块来增强应用的安全性。下面我们将深入探讨这两个通用安全...

    java api最新7.0

    org.ietf.jgss 此包提供一个框架,该框架允许应用程序开发人员通过利用统一的 API 使用一些来自各种基础安全机制(如 Kerberos)的安全服务,如验证、数据完整性和和数据机密性。 org.omg.CORBA 提供 OMG CORBA API ...

    Java基础尚硅谷宋红康学习笔记

    1. **反射**:Java反射机制允许在运行时检查类的信息(如类名、方法、字段等),并能动态调用方法和修改字段值,增强了代码的灵活性。 2. **泛型**:泛型提供了一种在编译时检查类型安全的方法,允许在类、接口和...

    基于Java的两个通用安全模块的设计与实现(源代码+LW).rar

    本资料"基于Java的两个通用安全模块的设计与实现(源代码+LW)"显然聚焦于如何利用Java语言构建安全功能,以保护软件免受潜在的安全威胁。下面将详细介绍这两个通用安全模块可能涉及的知识点,并探讨其在实际应用中的...

    java开源包6

    JArgs 是一个 Java 语言用来处理应用程序的命令行参数的类库。 高性能内存消息和事件驱动库 Chronicle Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-...

Global site tag (gtag.js) - Google Analytics