我是 Java Enterprise Edition 的新手,并且已经阅读过有关 servlet 和 JSP 的内容。Java EE 包含什么?我的意思是,是否有必要阅读有关 EJB 的信息?EJB 在 Java EE 中的作用是什么?
冬眠呢?EJB 和 Hibernate 都做同样的事情吗?
从 Java EE 5 开始,EJB 实际上只是添加了一些附加行为的普通 Java 对象,主要是:
还有一些其他服务专门用于 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 有一些重叠,但这只是现在的历史意义。
虽然这个回答过于宽泛,但总之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