EJB在Java EE中的作用是什么?

时间:2013-10-19 10:37:38

标签: hibernate ejb

我是Java Enterprise Edition的新手,已经阅读过有关servlet和JSP的内容。 Java EE包含什么?我的意思是,是否有必要阅读有关EJB的信息? EJB在Java EE中的作用是什么?

Hibernate怎么样? EJB和Hibernate都做同样的事情吗?

2 个答案:

答案 0 :(得分:1)

从Java EE 5开始,EJB实际上只是普通的Java对象,添加了一些额外的行为,主要是:

  1. 依赖关系会自动注入其字段
  2. 他们的方法通过RMI
  3. 自动导出到远程客户端
  4. 安全检查会自动应用于其方法的调用
  5. 交易自动包裹在其方法的调用中
  6. 还有一些特别适用于EJB的其他服务,例如异步调用,定时器和与消息队列的耦合。

    如果您认为这些内容中的任何一个都有用,那么您应该考虑使用EJB。如果您正在学习Java EE,那么您肯定需要了解EJB,以便您可以就是否使用它们做出明智的决定。

    值得注意的是,在现代Java EE中,有一个名为Contexts and Dependency Injection(CDI)的标准可用于获取EJB的许多好处,并且可能更为可取。你当然也应该了解CDI。

    许多Web应用程序都是在没有任何EJB的情况下构建的。大多数Web应用程序使用CDI或某些早期的非标准等效应用程序,例如Spring或Guice。

    Hibernate是Java Persistence Architecture(JPA)标准的实现。 JPA是关于将对象持久化到数据库,并为EJB提供完全不同的服务。您可以将JPA用于实体对象(捕获数据的结构和基本行为),使用EJB或CDI作为服务对象(捕获应用程序的特定业务逻辑)。

    早期版本的EJB也提供了EJB的持久性,因此与JPA有一些重叠,但现在只是历史感兴趣。

答案 1 :(得分:0)

虽然它太宽泛而无法回答,但简而言之,EJB技术是J2EE的核心。它使开发人员能够为J2EE平台编写可重用且可移植的服务器端业务逻辑。

来自here: -

  

EJB规范中指定的角色。

     

应用程序汇编程序负责打包所有   必要的EJB jar文件和任何其他jar文件,包括资源   适配器.rar文件,进入组装的业务应用程序。注意   组装并不意味着安装和部署应用程序;它   意味着将各种必要的应用程序组件集合   用于应用程序,以及更改单个组件部署   描述符是必要的。

     

部署者接收组装的应用程序,并将其部署到   由EJB服务器组成的特定运行时操作环境   和EJB容器。虽然EJB服务器没有必要   和EJB容器由同一供应商提供,在大多数情况下它是   (特别是因为当前的规范假定EJB   容器提供程序还提供EJB服务器)。任何配置   组件所需的也由使用的部署人员处理   一个部署工具,用于安装所有外部软件   应用程序组件依赖于。

     

EJB容器提供程序负责提供服务器和   符合EJB 2.0体系结构规范的容器。该   EJB容器是EJB实例的托管环境。该   容器还有一个部署管理工具,可以启用   部署者来管理J2EE应用程序。

     

系统管理员的角色远比维护更广泛   J2EE环境。系统管理员也负责   管理EIS环境并监控分布式   环境。没有具体的系统管理和监控   合同在EJB规范中指定。也没有   JCA规范中定义的类似合同。因此,为了   大多数情况下,系统管理和监控功能是   根据特定企业的要求进行定制。


  

两者是否相同。

没有Hibernate和EJB不一样。我建议你去The Java EE 6 Tutorial