1

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

冬眠呢?EJB 和 Hibernate 都做同样的事情吗?

4

2 回答 2

1

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

  1. 依赖项会自动注入到它们的字段中
  2. 他们的方法通过 RMI 自动导出到远程客户端
  3. 安全检查会自动应用于对其方法的调用
  4. 事务会自动围绕其方法的调用进行包装

还有一些其他服务专门用于 EJB,例如异步调用、计时器和与消息队列的耦合。

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

值得注意的是,在现代 Java EE 中,有一个称为上下文和依赖注入(CDI) 的标准,可用于获得 EJB 的许多好处,并且可能更可取。您绝对应该了解 CDI。

许多 Web 应用程序是在完全没有任何 EJB 的情况下构建的。大多数 Web 应用程序使用 CDI 或一些更早的、非标准的等价物,例如 Spring 或 Guice。

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

早期版本的 EJB 也确实提供了 EJB 的持久性,因此与 JPA 有一些重叠,但这只是现在的历史意义。

于 2013-10-19T11:52:53.050 回答
0

虽然这个回答过于宽泛,但总之EJB技术是J2EE的核心。它使开发人员能够为 J2EE 平台编写可重用和可移植的服务器端业务逻辑。

这里:-

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

于 2013-10-19T10:40:38.380 回答