java EJB是什么意思?为什么要使用EJB?有什么优点?支持 EJB3.0 的应用服务器有哪些? Tomcat只是EJB吗?也就是Enterprice JavaBeans 的缩写,它是于分布式业务应用的标准服务端组件模型。Enterprice JavaBeans 架构编写的应用是可伸缩的、事务性的、多用户安全的。可以一次编写这些应用,可以部署在任何支持 Enterprice JavaBeans 规范的服务器平台,就如 jboss、weblogic 等。
Enterprise JavaBean(EJB)定义了三种企业 Bean,它们是会话 Bean(Session Bean),实体 Bean(Entity Bean)以及消息驱动 Bean(MessageDriven Bean)。
Ø EJB会话Bean
会话 Bean 用于实现业务逻辑,它分为有状态 bean 和无状态 bean。每当客户端发出 EJB 调用请求时,容器就会选择一个 Session Bean 来为客户端服务。会话 Bean 可以直接访问数据库,但更多时候,它是通过实体 Bean 实现数据访问。
Ø EJB实体Bean :
从名字上我们就能猜到,实体 bean 代表真实物体的数据。在 EJB3.0 中,实体 bean 仅作为普通 Java 对象来使用,它负责跟数据库表进行对象与关系映射(O/R Mapping)。使用的JPA
Ø EJB消息驱 Bean(MDB) :
MDB 是设计用来专门处理基于消息请求的组件。它能够收发异步 JMS 消息,并能够轻易地与其他 EJB 交互。它特别适合用于当一个业务执行的时间很长,而执行结果无需实时向用户反馈的这样一个场合。
EJB 需要运行在 EJB 容器,每个 JavaEE 应用服务器都含有 EJB 容器和 Web 容器,因此既可以运行 EJB,也可以运行 Web 应用。支持 EJB3.0 的应用服务器有 Jboss(4.2.x 以上版本)、Glassfish、Weblogic(10 以上版本)、Sun Application Server(9.0 以上版本)、Oracle Application Server(10g 以上版本)以及国内的 apusic 应用服务器。Jboss 和 Weblogic,前者是使用者最多的开源应用服务器,而后者是市场占有率最高的商业应用服务器。注意:Tomcat 目前只是 Web 容器,它不能运行 EJB 应用。
为什么要使用EJB
EJB优势是分布式!分布式对象之间相互协作,完成业务功能。分布式对象之间应实现分布透明性(或位置透明性)。在客户端代码中不用指定分布式对象的位置(通过配置来解决)
分布式对象之间的事务支持(RMI不支持事务)
当应用程序支持不同的客户端,只要少量的代码,就可以让远程客户端访问到企业Bean。