我已经做 JavaSE 好几年了,现在转向 JavaEE。然而,我在理解 JavaEE 的某些方面有些困难。
JavaEE 仅仅是一个规范吗? 我的意思是: EJBJavaEE?
EJB/Spring 是不同的 JavaEE 实现吗?
我很抱歉地问一下,但是我在理解 JavaEE 是什么方面有一些困难。
有人能解释一下什么是 JavaEE 和 EJB 吗?
Java Enterprise Edition (Java EE)是一个总括规范,它引用了许多其他更详细的规范,其中 EJB (EJB)是其中一个更重要的规范。
阅读 这个-它解释了 JavaEE 和 Spring 之间的区别
谢谢..。
Source —— Java2 Platform,Enterprise Edition (J2EE)定义了开发基于组件的多层企业应用程序的标准。J2EE 简化了构建可移植的、可伸缩的、易于与遗留应用程序和数据集成的企业应用程序的过程。
Source —— EJB (EJB)技术是 Java 平台企业版(Java EE)的服务器端组件架构。EJB 技术支持基于 Java 技术的分布式、事务性、安全和可移植应用程序的快速简化开发。
JavaEE 是一种规范。
EJB 是 JavaEE 的服务器端组件体系结构
(2022年2月更新)
首先,“ JavaEE”自2019年9月起被重命名为“ 雅加达 EE”,从版本8开始。从历史上看,还有一个术语“ J2EE”,它涵盖了1.2到1.4版本。术语“ JavaEE”涵盖了版本5到版本8。参见 雅加达 EE,维基百科历史。
JakartaEE 仅仅是一个规范吗? 我的意思是: EJBJakartaEE?
JakartaEE 确实是一个 摘要规范。任何人都可以开发并提供规范的工作 实施。混凝土实现是所谓的应用服务器,如 野蝇、 TomEE、 玻璃鱼、 自由、 WebLogic等。还有一些 Servlet 容器,它们只实现巨大的 JakartaEEAPI 的 JSP/Servlet 部分,例如 雄猫、 Jetty等。
我们,JakartaEE 开发人员,应该使用规范编写代码(即在代码中导入 只有 jakarta.*类,而不是实现特定的类,如 org.jboss.wildfly.*、 com.sun.glassfish.*等) ,然后我们就能够在任何实现上运行我们的代码(因此,在任何应用服务器上)。如果您熟悉 JDBC,那么它基本上与 JDBC 驱动程序的工作方式相同。参见 A.O.简单地说,什么是工厂?
jakarta.*
org.jboss.wildfly.*
com.sun.glassfish.*
EJB 是 JakartaEE 规范的一部分。看,在雅加达 EE API 中。成熟的 JakartaEE 应用服务器开箱即用地支持它,但是简单的 JSP/Servlet 容器不支持。
EJB/Spring 是不同的 JakartaEE 实现吗?
不,如前所述,EJB 是 JakartaEE 的一部分。Spring 是一个独立的框架,它替代并改进了 JakartaEE 的许多部分。Spring 不一定需要运行 JakartaEE。像 Tomcat 这样的基本 servlet 容器已经足够了。简而言之,Spring 是 JakartaEE 的竞争对手。例如,“ Spring”(独立)竞争 EJB/JTA,Spring MVC 竞争 JSF/JAX-RS/MVC,Spring DI/IoC/AOP 竞争 CDI,Spring Security 竞争 JAAS/JASPIC,等等。
回到以前的 J2EE/EJB2时代,EJB2 API 的实现和维护非常糟糕。Spring 当时是 EJB2的一个更好的替代品。但是自从 EJB3(JavaEE5)以来,EJBAPI 在从 Spring 学到的经验教训的基础上得到了很大的改进。自从 CDI (JavaEE6)以来,没有理由再次研究像 Spring 这样的 另一个框架,以使开发人员更容易开发服务层。
只有当您使用基本的 servlet 容器(如 Tomcat)并且无法转移到 JakartaEE 服务器时,Spring 才更具吸引力,因为在 Tomcat 上安装 Spring 更容易。如果不修改服务器本身,就不可能在 Tomcat 上安装 EJB 容器,您基本上是在重新发明 TomEE。
简而言之—— JavaEE 是一个平台。
它由许多规范组成,这些规范只是 API。这些 API 的具体实现是所谓的“参考实现”
EJB 是 EJB
J2EE/JEE/JakartaEE
您需要了解的关于 JavaEE 的所有信息都可以通过启动@甲骨文官方网站找到。你也可能会对阅读 第8版规格 API感兴趣。花点时间看看 JavaEE8教程是值得的。实际上,您可能想从它开始,因为它提供了整个平台的非常好的概述。