快速业务通道

EJB最佳实践:数据验证出现在什么地方最合适 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

EJB最佳实践:数据验证出现在什么地方最合适

时间:2011-01-20 IBM Brett McLaughlin

尽管数据验证是所有企业应用程序的必需组件,但人们对数据验证过程的理解通常很肤浅,并且不能很好地执行。在这篇 EJB 最佳实践专栏文章中,Brett McLaughlin 解释了对基于 EJB 技术的系统进行数据验证的一些幕后概念,并向您展示了如何避免意外的或不可理解的错误消息。

每当您处理应用程序的业务逻辑时,都需要执行验证。应用程序必须有办法确保传入的数据格式正确,并且必须能够执行特定于业务的验证(如针对库存复核采购订单)。

我们将讨论数据验证逻辑应该出现在 EJB 应用程序代码的 什么位置,而不是专注于验证过程(Java 技术专区的 其它地方对此进行了很好的讨论)。在本系列先前的技巧文章中,我们了解了很多组成基于 EJB 技术的应用程序的组件:底层会话 bean 及其业务接口;在实体 bean 及其客户机之间传送数据的值对象以及担任 Web 层和业务层之间的保护层的各种委派类。验证逻辑十分适合这些组件中的任何一个。实际上,您可以在多个组件中放置验证逻辑,在整个应用程序中分层次地放置它(尽管这样做是不可取的)。因此,我们在此处提出的问题是:在 EJB 应用程序的什么位置放置验证代码 最有利?

数据验证的类型

要确定将验证代码放置在什么位置,第一步是了解您正在处理什么类型的验证。数据格式验证确保所有数据类型(整数、浮点数、字符串等)都是正确的。它还要确认变量都在允许值的范围之内以及实际的模式按预期的匹配。本质上,数据格式验证处理验证的任何方面,这些验证不需要应用特定业务规则。

特定于业务的验证基于一组业务规则(例如,确保所提供的 ISBN 号与您数据库中的实际书籍相匹配)。它几乎总是需要对 EJB 层以及应用程序中的其它业务逻辑组件具有访问权。

数据格式验证

确定了正在处理的验证类型之后,下一步是确定放置代码的位置。在您的 EJB 应用程序中,数据格式验证逻辑可以如下进行放置:

将赋值(setter)方法放置在业务委派上。

将赋值(setter)方法放置在 bean 的远程接口上。

将赋值(setter)方法放置在 bean 的消息对象或值对象上。

对于本示例,我们将假定您正在处理一个包括业务委派的 EJB 应用程序。如果是这样,那么您应该采取某些步骤,确保所有的应用程序客户机(处于 Web 层)都在使用委派进行 bean 访问,而不是直接访问 bean。如果确实是这样,那么您可以将所有数据验证代码都安全地放置在业务委派方法中,如清单 1 所示。

清单 1. 业务委派中的数据格式验证

package com.ibm.library; import java.rmi.RemoteException; import java.util.Iterator; import java.util.List; import javax.ejb.CreateException; import javax.naming.NamingException; public class LibraryDelegate implements ILibrary {     private ILibrary library;     public LibraryDelegate() {       init();     }     public void init() {       // Look up and obtain our session bean       try {         LibraryHome libraryHome =           (LibraryHome)EJBHomeFactory.getInstance().lookup(             "java:comp/env/ejb/LibraryHome", LibraryHome.class);         library = libraryHome.create();       } catch (NamingException e) {         throw new RuntimeException(e);       } catch (CreateException e) {         throw new RuntimeException(e);       } catch (RemoteException e) {         throw new RuntimeException(e);       }   

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号