|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net比java好。
假如声明一个bean的事件把持为TX_BEAN_MANAGED,则这个bean能够会见事件服务。当事件把持使用于单个的办法时这个把持只能使用于全部的bean.bean会见事件服务的才能不克不及只对某个办法起感化。因而一个办法声明事件把持为TX_BEAN_MANAGED,而另外一个办法声明为别的分歧的事件把持是毛病的。厂商的安装工具应当能检测到并呈报这个毛病。Bean分离经由过程初始化时setSessionContext()或setEntityContext()办法的参数SessionContext或EntityContext来会见事件服务。这些接口都是EJBContext的子类。
EJBContext的界说以下:
Publicinterfacejavax.ejb.EJBContext{
publicIdentitygetCallerIdentity();
publicbooleanisCallerInRole(Identityother);
publicEJBHomegetEJBHome();
publicPropertiesgetEnvironment();
publicUserTransactiongetUserTransaction()throwsIllegalStateException;
publicbooleangetRollbackOnly();
publicvoidsetRollbackOnly();
}
一旦bean取得了一个UserTransaction的援用,就能够用这个援用办理本人的事件。有形态的会话bean的办法能够创立一个事件,并且不必停止事件就能够前往。假如另有线程挪用bean的办法,容器检测是不是有bean创立的举动的事件,假如被挪用的事件是统一个事件,容器会同意该线程从头进进这个bean.假如bean在事件中且实行分歧事件高低文的线程试图进进bean,容器会堵塞这个线程直到bean的事件停止。假如线程试图进进事件时bean不在事件中,线程会实行一个本人的事件,容器会挂起线程以后的事件以同意线程进进。一旦线程分开办法就会恢单线程之前的事件,容器不会停止任何办法创立的事件。
关于无形态会话bean和实体bean,当事件举动时bean的办法不同意前往。容器会为此抛出一个破例。
Leavingatranactionactiveacrossmethodcallsisstateful,andisnotallowedforstatelesssessionbeans.Frosimilarreasons,entitybeansarealsonotallowedtomaintainanopentransactionstateacrossmethodcallswhenthebeanhasdeclaredtheTX_BEAN_MANAGEDtransactioncontrol.
会话同步接口
有形态和无形态的会话bean都能够会见数据库,而且介入一个事件。为了让bean在事件中实行它的义务,bean开辟者能够完成在bean中完成javax.ejb.SessionSynchronization接口。容器能主动检测这个接口,容器会利用这个接口中的办法以使bean失掉事件的形态信息。实体bean不撑持这个接口。由于实体beanareimplicitlytransactionaware,以是容器利用分歧的办法把持一个事件中的实体bean.
SessionSynchronization接口界说以下:
publicinterfacejavax.ejb.SessionSynchronization{
publicvoidafterBegin()throwsRemoteException;
publicvoidbeforeCompletion()throwsRemoteException;
publicvoidafterCompletion(booleanyn)throwsRemoteException;
}
<p>
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。 |
|