本文概述
EJB是企业Java bean的首字母缩写。它是Sun Microsystems提供的用于开发安全, 健壮和可扩展的分布式应用程序的规范。
要获取有关分布式应用程序的信息, 请首先访问RMI教程。
要运行EJB应用程序, 你需要一个应用程序服务器(EJB容器), 例如Jboss, Glassfish, Weblogic, Websphere等。它执行:
- 生命周期管理
- 安全,
- 交易管理, 以及
- 对象池。
EJB应用程序部署在服务器上, 因此也称为服务器端组件。
EJB类似于Microsoft提供的COM(组件对象模型)。但是, 它不同于Java Bean, RMI和Web服务。
什么时候使用Enterprise Java Bean?
- 应用程序需要远程访问。换句话说, 它是分布式的。
- 应用程序需要可扩展。 EJB应用程序支持负载平衡, 集群和故障转移。
- 应用程序需要封装的业务逻辑。 EJB应用程序与表示层和持久层分离。
企业Java Bean的类型
Java中有3种类型的企业bean。
会话Bean
会话Bean包含可由本地, 远程或Web服务客户端调用的业务逻辑。
消息驱动Bean
与会话Bean一样, 它包含业务逻辑, 但通过传递消息来调用。
实体豆
它封装了可以在数据库中保留的状态。不推荐使用。现在, 它已被JPA(Java持久性API)取代。
RMI和EJB之间的区别
RMI和EJB均提供服务以从另一个JVM访问在另一个JVM中运行的对象(称为远程对象)。 RMI和EJB之间的区别如下:
RMI | EJB |
---|---|
在RMI中, 中间件服务(例如安全性, 事务管理, 对象池等)需要由Java程序员完成。 | 在EJB中, 中间件服务由EJB容器自动提供。 |
RMI不是服务器端组件。不需要将其部署在服务器上。 | EJB是服务器端组件, 需要将其部署在服务器上。 |
RMI建立在套接字编程的顶部。 | EJB技术建立在RMI之上。 |
EJB和Web服务
在EJB中, bean组件和bean客户端都必须用Java语言编写。
如果需要使用其他语言(如.net, php等)编写bean客户端, 则需要使用Web服务(SOAP或REST)。因此带有Web服务的EJB将是更好的选择。
EJB的缺点
- 需要应用服务器
- 仅需要Java客户端。对于其他语言的客户端, 你需要使用网络服务。
- 理解和开发ejb应用程序很复杂。
评论前必须登录!
注册