【问题标题】:Spring and Spring MVC -- are they two different framework?Spring 和 Spring MVC——它们是两个不同的框架吗?
【发布时间】:2014-06-19 19:34:00
【问题描述】:

由于我正在尝试学习一些框架 J2EE,我正在研究 spring 框架。

在一些教程中让我感到困惑的是,他们提到 Spring MVC 作为 Spring 框架的一部分。但在某些地方,他们提到了一个不同且独立的框架。有些人甚至将 Spring MVC 与 Struts (据我所知,这是另一个框架)进行比较。

现在我实际上应该如何将 Spring MVC 作为一个不同的框架(如 Struts)或作为 Spring 的一部分?

【问题讨论】:

    标签: java spring spring-mvc frameworks


    【解决方案1】:

    Spring 在过去十年中发展得令人难以置信,所以现在Spring这个词在不同的使用环境下具有不同的含义。在这种情况下,可以使用以下Spring projects

    其中一个项目是Spring Framework:一个开源应用程序框架和用于 Java 平台的控制反转容器,它提供了许多功能

    • 依赖注入
    • 面向方面的编程,包括 Spring 的声明式事务管理
    • Spring MVC Web 应用程序和 RESTful Web 服务框架
    • 对 JDBC、JPA、JMS 的基本支持
    • 更多...

    这些功能中的每一个都设计在Spring Framework's module 中,分组在中,因此您可以找到:

    • 在核心层
    • ...
    • 在 web 层中
      • ...
      • Web-Servlet 模块包含 Spring 的用于 Web 应用程序的模型-视图-控制器 (MVC) 实现。 Spring's MVC framework 提供了域模型代码和 Web 表单之间的清晰分离,并与 Spring 框架的所有其他功能集成。
      • ...
    • ..

    您的问题

    现在我实际上应该如何将 Spring MVC 作为一个不同的框架(如 Struts)或作为 Spring 的一部分?

    两者都是正确的,因为上面总结了:Spring 包括 Spring 项目,其中之一是 Spring Framework,其中包含 Spring 的 MVC 框架。

    因此,如果您认为单个词 Spring 既是最通用的又是 Spring 框架,那么 Spring MVC 就是 Spring 的一部分。

    此外,您可以将 Spring MVC 视为 Struts,因为 Spring 的 MVC 框架应用程序域与 Struts 非常接近。

    我认为您的困惑来自于将某个部分(Spring 的 MVC 框架)与可能被认为包含的整体(最通用的单个词 Spring 或 Spring 框架)不同 .

    【讨论】:

      【解决方案2】:

      一般意义上的Spring是spring-core神器[http://mvnrepository.com/artifact/org.springframework/spring-core]提供的框架。包含 IoC、依赖注入和其他东西。

      Spring MVC 使用 Spring 来引导应用程序上下文,并向 MVC 添加一些指定的功能和特性。您应该将 Spring MVC 视为 Spring 的“插件”或“扩展”。

      【讨论】:

        【解决方案3】:

        Spring 是一个类似 Java EE 的堆栈。核心 Spring 框架提供依赖注入、AOP、JDBC 助手等。还有几个子项目:Spring MVC、Spring 批处理、集成等。(请参阅此处的完整堆栈:http://spring.io/projects) 是的,Spring MVC 与 Struts 非常相似,因为两者都是面向动作的 MVC 框架。通常子项目依赖于核心而不是其他子项目。 重点是 Spring 是一堆技术。

        【讨论】:

          猜你喜欢
          • 2021-05-26
          • 1970-01-01
          • 1970-01-01
          • 2016-08-28
          • 1970-01-01
          • 2014-06-12
          • 1970-01-01
          • 1970-01-01
          • 2016-02-15
          相关资源
          最近更新 更多