【问题标题】:Difference between Java EE and Spring framework [closed]Java EE 和 Spring 框架之间的区别 [关闭]
【发布时间】:2011-05-28 07:14:46
【问题描述】:

我正在努力了解 Java EE 和 Spring Framework 之间的区别。谁能帮我解决这个问题。

【问题讨论】:

    标签: spring spring-mvc jakarta-ee


    【解决方案1】:

    Java EE 是功能齐全的企业应用程序框架堆栈的标准、官方规范。包括对象关系映射、安全性、Web 应用程序、数据库连接、事务......

    除了 Java EE 规范之外,还有 JavaEE 实现/应用服务器,例如:JBoss、Glassfish、WebSphere、Weblogic。

    另一方面,Spring 是一个框架,它在 Java EE 规范中做了很多工作,但以它自己的形式。他们不遵循 Java EE 规范和 API。但它们确实包括 Web 框架、事务管理、安全性和 Java EE 提供的其他几个解决方案。

    【讨论】:

      【解决方案2】:

      Java EE:

      1. Java EE 行业认可的基于标准 API 的框架
      2. 主要基于注释和 CDI
      3. 用于 Web 开发的 JFC MVC 框架
      4. 处理 DB 操作的 JPA 规范
      5. 带有实现的 JTA API
      6. EJB 容器和基于 POJO 的实现
      7. Oracle 许可证

      春天:

      1. 基于 IOC 和 AOP
      2. 基于 XML 配置(现在他们正在利用注释)
      3. 使用 Spring DAO 框架(基于模板设计模式)连接数据库
      4. 提供抽象层以支持各种 JTA 实现供应商
      5. 与各种 Java 供应商集成以支持不同的功能,例如 struts 等
      6. 提供端到端平台来构建使用 DI 和 AOP 实现松散耦合的 Web 应用程序
      7. 开源许可

      【讨论】:

      • 请注意,Java EE 实现,如 JBoss、TomEE 等不附带“Oracle 许可证”,但有像 GPL 或 Apache 这样的普通开源许可证。
      【解决方案3】:

      Java EE:

      1. 应用服务器供应商遵循的 Sun/Oracle 标准
      2. 基于企业 Java Beans
      3. 由许多供应商实施:BEA/Oracle、WebSphere、JBOSS、Glassfish 等。

      春天:

      1. 不是标准;它是 Rod Johnson 的创意,由 Spring/VMWare 实现。
      2. 不基于企业 Java Bean;这是一个 POJO 模型。如果您希望使用 EJB,可以管理它们,但不是必需的。
      3. Spring 以外的任何供应商都没有实现。

      EJB 3.1 从 Spring 中吸取了很多。现在它包括依赖注入、方面的一种形式和 JPA。 EJB 3.1 比 EJB 2.0 更接近 Spring。

      【讨论】:

      • 我不完全同意你的回答。说 Java EE 基于 EJB 有点牵强。是的,EJB 在 Java EE 中扮演着重要的核心角色,但它不是一项基础技术。
      • 此外,EJB 3.1 没有从 Hibernate 中获取任何东西。 JPA 从 Hibernate 中获取了很多东西(Hibernate 从 TopLink 中获取了很多东西,TopLink 比它早了很长时间)。 EJB 3.1 使使用 JPA 变得更容易,但它绝对不包括 JPA。
      • 最后,EJB 3.1 确实从 Spring 中汲取了一些东西,Java EE 社区应该永远感谢 Rod。编程模型现在非常相似,主要在细节上有所不同。 EJB 2.0 bean 与 Spring bean 完全相反。最近,Spring bean 正在追随 EJB bean,它开始使用 XML 上的注释和配置上的约定。 Spring 是否也会遵循 CDI 的类型安全注入还有待观察(请注意,CDI 是 Java EE 中非常重要的 API,它本身并不基于 EJB,但只能与之集成)。
      【解决方案4】:

      我在这里 Frameworks for Layering reusable Architectures 提供了 Java EE 的概述

      这也包含一个与 Spring 的小比较,可能与这个问题有关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-05
        • 1970-01-01
        • 2011-11-21
        • 1970-01-01
        • 1970-01-01
        • 2017-02-22
        • 1970-01-01
        • 2011-02-20
        相关资源
        最近更新 更多