企业JavaBeansTM技术介绍 - 编程入门网
看一个有关电子商务的例子-- 一个网上"购物车"。考虑一下你将如何建立一个购物车Bean? 或许你应该从建立Bean的远程接口开始:
这个接口定义了两个方法: additem()用于向购物车中增加物品, purchase()用于完成这笔交易。一旦公共接口的定义完成,我们必须编写Bean的类:
请注意, 企业Bean类不实现Bean的远程接口, 它是由EJBObject来完成的。另外, session Bean不支持自动的persistence。因而, 显式数据库访问必须在其方法中实现。例如, 在purchase()方法中, JDBCTM调用可被用来更新数据库, 而由容器在安装时生成的EJBObject可实现远程接口;EJBObject的作用就象是一个"代理人", 它将方法调用传递给安装在服务器中的Bean实例。 客户做的第一件事是使用JNDI为所需要的Bean定位EJBHome。在本例子中, EJBHome对象可能以下列形式出现:
CartHome接口包含一个create()方法, 当客户请求一个新的Bean的时候该方法将被调用。请注意, 这个方法是在EJBObject中实现的并将在被调用时调用Bean类中的ejbCreate()方法。 ShoppingCart类的EJBHome对象可使用下列代码来定位: Context initialContext = new InitialContext(); CartHome cartHome = (CartHome) initialContext.lookup ("application/mall/shopping-carts"); 在本例中, 调用InitialContext()以得到JNDI命名层次的根;lookup()方法被用来得到CartHome。 在此种情况下, "applications/mall/shopping.carts"是JNDI到达你感兴趣的CartHome的路径。此时, cartHome持有了ShoppingCartEJB的EJBHome对象的引用。然而, 请注意客户的JNDI的命名空间可能被设置为包括分布于网络上的多种机器上的EJB容器; EJB容器的实际位置一般来说对客户是透明的。 下例显示了客户是如何使用EJBHome对象并调用方法的:
在上述代码中, create()方法创建了一个新的session Bean, 变量cart 包括了一个对远程EJB Object的引用, EJB Object允许你调用它的方法additem()和purchase()。cartHome中的create()方法将调用对应的Bean中的ejbCreate()方法。 EJB的未来 EJB规范1.0是在1998年JavaOne大会期间发布的, 它为建立分布式商务对象系统提供了坚实的结构体系基础, 它不应该被认为是这一研究主题的结束, 而应该是进一步完善这一体系结构的开始。该规范的一些内容还需改进, 特别是处理persistence对象的EJB模型。另外, 还应考虑标准化开发工具和开发系统之间的协定,以为所有开发环境提供统一的调试界面。 将来, SunMicrosystem还将研究兼容性问题。有两个领域涉及到兼容性问题, 一是"EJB兼容的"服务器到底是由什么组成的? 一个兼容性计划有望在不久的将来出现; 二是保证不同厂商的EJB服务器具有相互操作性。Sun正在就这些问题征求其合作伙伴的意见, 以决定如何发展。 结论 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |