欢迎来到天天文库
浏览记录
ID:37658163
大小:350.84 KB
页数:43页
时间:2019-05-27
《Jboss源码解析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、http://opensource.objectsbydesign.com/jboss/index.htmlhttp://www.mscto.com/JavaBase/2009022570733.html(本文网址)Jboss源码解析JBoss是一个非常优秀的J2EE的ApplicationServer,研究它的源代码有助于我们更好的理解J2EE的各种技术。本系列拟从四个方面分析Jboss源码:1.EJBContainer实现2.Transaction实现3.PersistenceMapping4.Client到Server端的Invocation
2、-------------------------------------------------------------------先说第1点:EJBContainer实现。1.1EJBPool我们知道,EJBContainer会维护一个EJB池,在多个client间共享,避免频繁创建销毁对象的开销。让我们来看看Jboss实现的Pool:EJB分EntityBean,MDB,Stateless/StatefulSessionBean,而Jboss中也对应的有EntityInstancePool,MessageDrivenInstancePool,
3、StatefulSessionInstancePool,StatelessSessionInstancePool.让我们先从这4个类的共同基类AbstractInstancePool看起:classAbstractInstancePool实现了接口InstancePool,该接口有以下几个方法:EntERPriseContextget()throwsException;voidfree(EnterpriseContextctx);voiddiscard(EnterpriseContextctx);intgetCurrentSize();public
4、intgetMaxSize();--------------------------------------------------------------------先对EnterpriseContext作番说明。EnterpriseContext的作用就是把具体的EJBinstance和它的metadata联系起来。该类签名为:publicabstractclassEnterpriseContext,有4个子类,EntityEnterpriseContext,MessageDrivenEnterpriseContext,StatefulSess
5、ionEnterpriseContext,StatelessSessionEnterpriseContext。分别对应4种类型的EJB。EnterpriseContext中有几个重要的成员变量。/**TheEJBinstance*/Objectinstance;/**Thecontainerusingthiscontext*/Containercon;//Container这个类是JBoss用来代表对EJB提供Transaction,Security,Pool等服务的类,我们回头还会再说。/**OnlyStatelessSessionbeansha
6、venoId,statefulandentitydo*/Objectid;/**Thetransactionassociatedwiththeinstance*/Transactiontransaction;//Transaction,我们下节再说.//Constructors--------------------------------------------------publicEnterpriseContext(Objectinstance,Containercon){this.instance=instance;this.con=con
7、;}publicObjectgetInstance(){returninstance;}publicContainergetContainer(){returncon;}publicvoidsetId(Objectid){this.id=id;}publicObjectgetId(){returnid;}publicvoidsetTransaction(Transactiontransaction){this.transaction=transaction;}publicTransactiongetTransaction(){returntrans
8、action;}privateEntityContextctx;StatefulSessionEnterpriseCont
此文档下载收益归作者所有