|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。等候以久的EJB3.0标准在比来公布了它的初稿。在本文中将对新的标准举行一个提要性的先容,包含新增的元数据撑持,EJBQL的修正,实体Bean模子会见bean高低文的新办法和运转时情况等等。作者还会商了EJB在将来要作出的调剂和EJB3.0与其他开辟标准之间的干系。
入手下手
不管怎样因为EJB的庞大性使之在J2EE架构中的体现一向不是很好。EJB也许是J2EE架构中独一一个没有兑现其可以复杂开辟并进步临盆力的组建。EJB3.0标准正实验在这方面作出勉力以加重其开辟的庞大性。EJB3.0加重了开辟职员举行底层开辟的事情量,它作废或最小化了良多(之前这些是必需完成)回调办法的完成,而且下降了实体Bean及O/R映照模子的庞大性。
在本文中,我起首会先容EJB3.0中几个次要的改动。它对进一步深切懂得EJB3.0长短常主要的。随后,我会从更高的层面来形貌已被提交到EJB3.0标准中的细节,并一个个的解说新的标准中的改动:实体Bean,O/R映照模子,实体干系模子和EJBQL(EJB查询言语)等等。
背景
EJB3.0中两个主要的变动分离是:利用了Java5中的程序正文工具和基于Hibernate的O/R映照模子。
Java5中的元数据工具
Java5(之前叫J2SE1.5或Tiger)中到场了一种新的程序正文工具。经由过程这个工具你能够自界说正文标志,经由过程这些自界说标志来正文字段、办法、类等等。这些正文其实不会影响程序的语义,可是能够经由过程工具(编译时或运转时)来注释这些标志并发生附加的内容(好比部署形貌文件),大概强迫某些必需的运转时举动(好比EJB组件的形态特征)。正文的剖析能够经由过程源文件的剖析(好比编译器或这IDE工具)大概利用Java5中的APIs反射机制。正文只能被界说在源代码层。因为一切被提交到EJB3.0草案中的正文标志都有一个运转时的RetentionPolicy,因而会增添类文件占用的存储空间,但这却给容器打造商和工具打造商带来了便利。
Hibernate
今朝Hibernate十分受接待,它是开辟源代码的JavaO/R映照框架,目标是把开辟职员从烦琐的数据耐久化编程中摆脱出来。它也有一个尺度的HQL(Hibernate查询言语)言语,你能够在新的EJBQL中看到它的影子。Hibernate在处置如数据查询、更新、毗连池、事件处置、实体干系处置等方面十分复杂。
概览
在已提交的EJB3.0标准中次要触及两个方面的改动:
1.一套以正文为基本的EJB编程模子,再加上EJB2.1中界说的经由过程部署形貌符和几个接口界说的使用程序举动。
2.新的实体Bean耐久化模子,EJBQL也有很多主要的改动。
另有一些有打开述的发起,好比:一个新的客户端编程模子,营业接口的利用和实体Bean的性命周期。请注重EJB2.1编程模子(包含部署形貌符和home/remote接口)仍旧是无效的。新的简化模子并没有完整代替EJB2.1模子。
EJB正文
EJB标准构造一个主要的方针是加重原始代码的数目,而且他们为此给出了一个完善而简介的举措。在EJB3.0的里,任何范例的企业级Bean只是一个加了得当正文的复杂Java对象(POJO)。正文能够用于界说bean的营业接口、O/R映照信息、资本援用信息,效果与在EJB2.1中界说部署形貌符和接口是一样的。在EJB3.0中部署形貌符不再是必需的了;home接口也没有了,你也不用完成营业接口(容器能够为你完成这些事变)。
好比,你可使用@Stateless正文标志类把Java类声明为一个无形态回话bean。关于有形态回话bean来讲,@Remove正文能够用来标志一个特定的办法,经由过程这个正文来讲明在挪用这个办法以后bean的实例将被扫除失落。
为了削减形貌组件的申明信息,标准构造还采取了由非常举行设置(configuration-by-exception)的手腕,意义是你能够为一切的正文供应一个明白的缺省值,如许多半惯例信息就能够据此揣度得出。
新的耐久化模子
新的实体bean也是一个加了正文的复杂Java对象(POJO)。一旦它被EntityManager会见它就成了一个耐久化对象,而且成了耐久化高低文(context)的一部分。一个耐久化高低文与一个事件高低文是松耦合的;严厉的讲,它隐含的与一个事件会话共存。
实体干系也是经由过程正文来界说的,O/R映照也是,并供应几种分歧的数据库标准操纵,在EJB2.1中这些要经由过程开辟职员本人的计划形式大概别的手艺来完成的(好比,自增加主键战略)。
深切研讨
如今是时分具体懂得EJB3.0草案了。让我们入手下手切磋一切EJB中四种企业级bean,并看看他们在新的标准中是甚么模样。
无形态回话bean
在EJB3.0标准中,写一个无形态回话bean(SLSB)只必要一个复杂的Java文件并在类层加上@Stateless正文就能够了。这个bean能够扩大javax.ejb.SessionBean接口,但这些不是必需的。
一个SLSB不再必要home接口,没有哪类EJB再必要它了。Bean类能够完成营业接口也能够不完成它。假如没有完成任何营业接口,营业接口会由恣意public的办法发生。假如只要几个营业办法会被表露在营业接口中,这些办法可使用@BusinessMethod正文。缺省情形下一切发生的接口都是local(当地)接口,你也能够利用@Remote正文来声明这个接口为remote(远程)接口。
上面的几行代码就能够界说一个HelloWorldbean了。而在EJB2.1中一样的bean最少必要两个接口,一个完成类和几个空的完成办法,再加上部署形貌符。
importjavax.ejb.*;
/**
*Astatelesssessionbeanrequestingthataremotebusiness
*interfacebegeneratedforit.
*/
@Stateless
@Remote
publicclassHelloWorldBean{
publicStringsayHello(){
return"HelloWorld!!!";
}
}
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解 |
|