Enterprise JavaBeans Distilled
作者:(worldheart@263.net)
第三次:
EJB 2.0规范研究、学习
通过前两次,大家对EJB有了大概的了解,当然细节部分您可以参考我给出的参考资料。这次的主要任务是分析Enterprise JavaBeans 2.0 Specification。规范的PDF下载版本地址在http://java.sun.com/products/ejb/docs.html,这个地方。为什么将规范作为一次内容来讲呢?
本人认为。第一,如果您没有看过EJB规范,是否就一定了解EJB的真正意义?因为我们知道Java相关的东西,都是通过JCP组织(http://www.jcp.org )发布相关规范来给出各个技术所包含的内容,所以通过分析规范我们可以对EJB有更好的认识。第二,不要把会开发EJB组件作为自己的终极目标。我们知道,软件工程的使用使得软件开发将会越来越简单,比如举一个简单的例子,Together,不知道大家用过没有?Java语言本身推荐有编码要求,如果开发人员需要自己维护代码的风格很头疼,Together给你做好了,简单的快捷方式使得你减少工作量。所以你需要研究EJB规范,注重EJB技术的底层内容。第三,如果您研究过EJB规范,是否觉得将近600页的内容使得您很费力去分析、研究。所以在这里给出一些建设性的意见辅助您学习。
进入正题。。。
首先让我们看看EJB 2.0中主要增加了什么内容。这些内容自然是我们要研究的重点。
(1) 通过集成EJB和JMS,引入一种新的EJB,消息驱动Bean(Message-Drivern Beans)。消息驱动Bean是一种无状态、异步处理消息、非分布式组件(实现过程中不需要实现EJBHome、EJBOject接口),其开发过程很简单。建议学习方式:需要JMS基础,和一定的EJB基础,然后结合一些应用实例可以开始学习,推荐J2EE Tutorial,JBuilder 7帮助中提供的例子也不错,或者Enterprise JavaBeans,3rd这本书中的例子。
(2) EJB 2.0中,用于CMP的Entity Beans作了很大的修改,并且引入了CMR,容器管理关系。其中,用于管理Entity Beans间关系的CMR的引入给我们带来很大的便利。EJB QL也是不错的新东西。还有一些提高性能方面的改进。建议看看J2EE Tutorial中的例子,仔细分析分析,http://www.theserverside.com 上有不少这方面较为深入的分析。
(3) Local接口的引入。在EJB组件的开发上,开发人员的开发方式没有多大改变,但这种改变带来了其他很重要的东西。比如,性能上的提高,因为EJB客户不需要采用分布式协议访问该EJB组件。还有,Local接口使得CMR成为可能,如果你开发过EJB 1.1组件,就需要自己去管理Beans之间的关系。建议,同上。
(4) EJB QL的引入。类似SQL 的东西,但操作对象不一样,可以说EJB QL实现了SQL的子集。建议:同上,同时我会专门有一次专题讲述EJB QL。
(5) EJB安全方面的加强:通过角色宣称(role declarative)实现。建议参考Enterprise JavaBeans,3rd.
(6) 允许EJB客户可以是不同产品上的J2EE组件。
这些内容是EJB 2.0中介绍的,所以我们要重点注意这些技术。
其次,600页的规范,我们不可能在很短的实践中全部都掌握了。可以结合自己项目中用到的具体开发内容,有选择的学习,但首先一定要知道EJB 2.0规范中的具体内容。
有的放矢。
循序渐进,有了这种过程,你每次看EJB 2.0规范过程中会有新的领悟。孔子总结出来的道理。比如,我刚王成一个项目,其中的消息驱动Beans用得比较多,所以结合这些内容把EJB 2.0规范中相应的内容多多研究。
再者,需要您去多看看Enterprise JavaBeans API Reference。这些文档可以去Java网站下载。在Mastering EJB中有详细介绍。
希望大家讨论。