java - java EE 中的所有内容都是抽象的吗?

标签 java jakarta-ee

我是 java EE 的新手,在理解 java EE 的实现方式时遇到一些困难。根据我一直使用的资源,我了解到JAVA EE只是规范的集合,而应用服务器才是这些规范的真正实现。

这是否意味着 Oracle 的架构师刚刚提出了设计(只是框架:即接口(interface)、抽象类、类),而应用程序服务器(Glassfish、WebLogic)程序员在实际代码中实现了这一点?

Java EE 中的所有内容都只是规范吗?

JPA、JAX-RS 怎么样?这是否意味着应用服务器供应商没有实现这些规范的代码?如果是,是否也意味着应用服务器供应商选择了规范的子集并以实际代码实现它,而留下了一些其他规范由其他供应商实现?

最佳答案

除了漂亮的@JoD。”的答案,还有一些想法:

JAVA EE is just a collection of specifications, and application servers are the real implementation of those specifications.

完全正确。

Does it mean that architects at oracle, just came up with the design..

准确地说,是 Sun 的架构师:)

What about JPA, JAX-RS? Does it mean, that application server vendors did not implement code for those specifications?

没有。每个应用程序服务器都应该实现所有规范,以便兼容 Java EE。它们将如何实现,这是特定于供应商的。例如,WildFly 的 JPA 实现是 Hibernate ,但 Glassfish 使用 EclipseLink 。它们都是 JPA 的超集,因此,如果您只坚持使用实现 JPA 的类,那么您确信您的应用程序可以部署在各种应用程序服务器上,而无需任何其他操作。但是,如果您使用例如来自的类org.eclipse.persistence.* 包,那么您将无法在 WildFly 上部署,除非您随应用程序一起提供 EclipseLink 实现。

关于java - java EE 中的所有内容都是抽象的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29730339/

相关文章:

java - java中根据特殊字符和括号分割段落

java - 如何设置 ImageButton 大小以及按下按钮时将其显示在添加的图像上

java - 如何监听并获取文件目录中的文件列表?

java - 请求调度程序转发在包含任何 servlet 后不转发

java - powermock 有序

java - 插入数据库

jakarta-ee - Java EE 和 Servlet 以及 JSP

java - Eclipse Java EE IDE 不支持 javax.servlet 包

java - EJB3 - 将一个MDB注入(inject)另一个MDB?

java - 发送 HTTP POST 请求