JavaEE和Spring如何相关/不相关?

时间:2014-10-25 11:46:46

标签: java spring spring-mvc java-ee

我是JavaEE和Spring Framework的新手。我很难理解如何只使用Spring Framework编写应用程序。我在互联网上读到,Spring Framework的目的是使EJB开发(主要是EJB 2.x系列)中的企业级应用程序开发更简单。

使用JavaEE,我们有许多技术,如:     1)EJB     2)JCP     3)JTA     4)JPA等。

在阅读Spring Framework时,我开始使用依赖注入,Spring AOP,Spring MVC(以及我正在阅读的其他人)。

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

任何有助于我明确这一点的答案都非常感谢。

2 个答案:

答案 0 :(得分:9)

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

例如:

  • Spring MVC构建于servlet之上(它是Java EE的一部分),它与JAX-RS和JSF竞争
  • Spring core(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 :(得分:1)

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

JavaEE是一套API和一组(一个很大的)标准/规范,用于在Java中构建可伸缩的服务器端应用程序,从而允许创建大而复杂的东西 - 可以调用的东西#34;企业"

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

你是一名程序员,因此你就是那个

的人
  

成熟的企业应用程序

来自Java EE,Spring或其他的一组组件。