Geronimo renegade: OpenEJB和Apache Geronimo的EJB实现 - 编程入门网
确保响应返回 给客户机。服务器还处理任务,比如 “通过调用通信事务处理安全状态” ,David 说。
我必须承认,对于 Plain Old Java Objects (POJO) 来说这是相当棘手的事情。我已经 开始看到使用 EJB 的优点。但我仍然是一个 Web 服务小子,所以远程系统吓不倒我。EJB 还能为我这个程序员做什么呢?基本上,它似乎主要以由容器执行的函数为中心。 EJB 能为您做什么 有三种类型的 EJB —— 会话 bean(无状态的和有状态的)、消息驱动 bean (MDB) 和 实体 bean。“我从来都不喜欢术语无状态 或有状态”,David 承认,“因为它们都保留状 态。只是它们对状态具有不同的保证。我曾经教过 EJB(课程),我总是告诉我的学生将它 们看作专用实例和共享实例。专用实例是有状态的会话 bean,共享实例是无状态会话 bean 。可以将共享组件看作从图书馆借来的书。如果在读完之后归还它,则可以再次签出,但不 能获得物理相同的同一本书,即使其标题相同。有的人可能在里面涂写了,您在访问这本书 时必须将这些考虑在内。” 专用或无状态的 bean 没有这个问题,因为一旦您请求一个这样的 bean,它就是您的了 。其他任何人都不能使用该组件实例,所以可以确保任何涂改都是您的。这里的挑战在于, 您现在冒着累积服务器上几乎无数个这种私有状态的风险,所以需要一种方法来将那些目前 不使用的状态推到磁盘中。所有这些都由容器处理。 容器还管理 MDB,从而使您可以很容易地使用 Java Message Service (JMS) 来回传递消 息。您可以通过 JMS 以事务处理方式调用(消息驱动),这是一个非常方便的特性”, David 解释说。“您不必编写许多代码。您必须做的就是实现接口,而请求是从 JMS 到达您 那里的。”在这种应用程序中,不必太多关注接收您消息的客户机的形式。 还有实体 bean 的问题,它具有自己的优点 —— 主要是持久性和高速缓存方面。例如, 您可以从数据库提取信息,并使用实体 bean 在事务处理期间高速缓存数据。“老实说,如 果让您亲自编程,您会发现这种优化是非常困难的”, David 说。 Geronimo renegade: OpenEJB和Apache Geronimo的EJB实现(3)时间:2011-04-30 IBM Nicholas ChaseOpenEJB 容器 该功能全部都由容器负责。容器 “管理无状态 bean 池以及无状态 bean 和实体 bean 的高速缓存区”,David 告诉我,“当调用来临时,它会进行必要的工作,将组件准备好以 便调用。它在调用前准备好所有事务状态或确保所有安全要求,然后一旦发生调用,它将处 理任何类型的故障,比如回滚事务处理等,然后将请求发送给要与客户机通信的服务器。” 好了,容器要做的事情实在太多了。就容器而言,使用 bean 可能要比试图亲自管理一切 要值得。但这并不是容器所做的全部事情。容器还可以管理每个组件的生命周期。 您可能说,“那这意味着什么呢?” 这意味着容器明确知道要发生在组件上的事情并能 够让您知道。例如,您可能想知道它何时将调用一个组件,是当它在组件中启动一个事务之 前、在结束一个事务之前,还是在销毁一个组件之前,等等。您为什么想知道?因为您可以 在那时实际执行操作。例如,您可以实现回调,即在事务处理完成时或回调时发送消息。这 使您可以完全控制组件的生命周期。 能力的代价 但这种能力不会没有代价。这个代价就是您必须实际实现所有这些回调,不管您是否使用 它们。这对不需要 EJB 提供的全部功能的程序员来说是一个问题,因为实现每个回调的问题 不在于 EJB 实现的选择,而在于通过无格式旧 Java 接口实现 EJB 这一事实的后果。“如 果您有较低端的需求,那么使用这个 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |