发布一篇EJB自办理的事件
那这个对象有什么意义?现在很多用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的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.ckuyun.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 是一种使用者不需花费很多时间学习的语言 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种将安全性(Security)列为第一优先考虑的语言 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
页:
[1]