JavaEE 和 Spring 如何相关/不相关? [已关闭]

问题描述 投票:0回答:2

我是 JavaEE 和 Spring 框架的新手。我很难理解我们如何仅使用 Spring 框架编写应用程序。我在网上读到Spring框架的目的是让企业级应用程序的开发比EJB开发更简单(主要是EJB 2.x系列)。

通过 JavaEE,我们拥有许多技术,例如: 1)EJB 2)JCP 3)日本旅游局 4)JPA等。

在阅读 Spring Framework 时,我从依赖注入、Spring AOP、Spring MVC(以及我正在阅读的其他内容)开始。

我很难理解仅仅使用 Spring DI / AOP / MVC 如何才能制作出成熟的企业应用程序?我从一篇帖子中读到,例如对于事务管理,我们可以使用Spring自己的事务管理或使用JTA。我相信JTA是JavaEE的一部分,如果我们最终使用JavaEE的技术,那么Spring如何轻松生活?

非常感谢任何能帮助我澄清这一点的答案。

java spring spring-mvc jakarta-ee
2个回答
10
投票

Spring 由许多不同的部分组成,Java EE 也是如此。其中一些是直接竞争对手,而对于另一些,Spring 提供了抽象层和/或 Java EE 组件的 Spring 集成。

例如:

  • Spring MVC 构建在 servlet(Java EE 的一部分)之上,它与 JAX-RS 和 JSF 竞争
  • Spring 核心(IoC、AOP)与 CDI 和 EJB 竞争
  • Spring 事务处理只是现有事务机制(JPA、Hibernate、JDBC 或 JTA)之上的抽象层
  • Spring-data-JPA 是 JPA 之上的抽象层
  • Spring-JDBC 是 JDBC 之上的抽象层

因此,对于使用 Spring 构建的典型 Web 应用程序,您至少会使用 Java EE 的一些组件:servlet,也许是 JDBC 或 JPA。如果您需要消息传递和 XA 事务,您将使用 JMS 和 JTA,但 Spring 将提供集成层。关于依赖注入,您不需要 EJB 和 CDI,因为 Spring 直接支持相同的功能。


1
投票

首先,定义企业应用程序 - AFAIK Java EE 中的“企业”只是一个营销术语。

JavaEE 是一组 API 和一堆(一大堆)标准/规范,用于用 Java 构建可扩展的服务器端应用程序,从而允许创建一些大而复杂的东西 - 可以称为“企业”的东西。

Spring 是一个与 J2EE 集成的应用程序框架(有人会说“THE 框架”)。

你是一名程序员,因此你是创造者

成熟的企业应用程序

来自 Java EE、Spring 等提供的一组组件。

© www.soinside.com 2019 - 2024. All rights reserved.