|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
主要缺点就是:速度比较慢,没有C和C++快
我们将会商数据考证逻辑应当呈现在EJB使用程序代码的甚么地位,而不是专注于考证历程(Java手艺专区的别的中央对此举行了很好的会商)。我们懂得了良多构成基于EJB手艺的使用程序的组件:底层会话bean及其营业接口;在实体bean及其客户机之间传送数据的值对象和担当Web层和营业层之间的回护层的各类委派类。考证逻辑非常合适这些组件中的任何一个。实践上,您能够在多个组件中安排考证逻辑,在全部使用程序平分条理地安排它(只管如许做是不成取的)。因而,我们在此处提出的成绩是:在EJB使用程序的甚么地位安排考证代码最有益?
数据考证的范例
要断定将考证代码安排在甚么地位,第一步是懂得您正在处置甚么范例的考证。数据格局考证确保一切数据范例(整数、浮点数、字符串等)都是准确的。它还要确认变量都在同意值的局限以内和实践的形式按预期的婚配。实质上,数据格局考证处置考证的任何方面,这些考证不必要使用特定营业划定规矩
特定于营业的考证基于一组营业划定规矩(比方,确保所供应的ISBN号与您数据库中的实践书本相婚配)。它几近老是必要对EJB层和使用程序中的别的营业逻辑组件具有会见权。
数据格局考证
断定了正在处置的考证范例以后,下一步是断定安排代码的地位。在您的EJB使用程序中,数据格局考证逻辑能够以下举行安排:
将赋值(setter)办法安排在营业委派上。
将赋值(setter)办法安排在bean的远程接口上。
将赋值(setter)办法安排在bean的动静对象或值对象上。
关于本示例,我们将假定您正在处置一个包含营业委派的EJB使用程序。假如是如许,那末您应当接纳某些步骤,确保一切的使用程序客户机(处于Web层)都在利用委派举行bean会见,而不是间接会见bean。假如的确是如许,那末您能够将一切数据考证代码都平安地安排在营业委派办法中,如清单1所示。
清单1.营业委派中的数据格局考证packagecom.ibm.library;
importjava.rmi.RemoteException;
importjava.util.Iterator;
importjava.util.List;
importjavax.ejb.CreateException;
importjavax.naming.NamingException;
publicclassLibraryDelegateimplementsILibrary{
privateILibrarylibrary;
publicLibraryDelegate(){
init();
}
publicvoidinit(){
//Lookupandobtainoursessionbean
try{
LibraryHomelibraryHome=(LibraryHome)EJBHomeFactory.getInstance().lookup(
"java:comp/env/ejb/LibraryHome",LibraryHome.class);
library=libraryHome.create();
}catch(NamingExceptione){
thrownewRuntimeException(e);
}catch(CreateExceptione){
thrownewRuntimeException(e);
}catch(RemoteExceptione){
thrownewRuntimeException(e);
}
}
//Novalidationrequiredforaccessor(getter)methods
publicbooleancheckout(Bookbook)throwsApplicationException{
//Novalidationrequiredhere;theobjecttype
//takescareofit
try{
returnlibrary.checkout(book);
}catch(RemoteExceptione){
thrownewApplicationException(e);
}
}
publicbooleancheckout(Listbooks)throwsApplicationException{
//Validatelist
for(Iteratori=books.iterator();i.hasNext();){
Objectobj=i.next();
if!(objinstanceofBook){
thrownewApplicationException(
ApplicationException.VALIDATION_ERROR,"OnlyBooksareallowedintheinputlist");
}
}
try{
returnlibrary.checkout(books);
}catch(RemoteExceptione){
thrownewApplicationException(e);
}
}
//Andsoon...
publicvoiddestroy(){
//Inthiscase,donothing
}
}
<p>
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。 |
|