Maven依赖spring-web vs spring-webmvc

时间:2012-11-23 17:45:15

标签: spring maven spring-mvc

以下依赖项之间有什么区别?

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

VS

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

如果我单独添加spring-webmvc,则隐式添加spring-web

我们什么时候应该单独使用spring-web

2 个答案:

答案 0 :(得分:112)

spring-web提供核心HTTP集成,包括一些方便的Servlet过滤器,Spring HTTP Invoker,与其他Web框架集成的基础架构和HTTP技术,例如Hessian,Burlap。

spring-webmvc是Spring MVC的一个实现。 spring-webmvc上的spring-web depends on,因此包含它会传递spring-web。您无需明确添加spring-web

如果您不使用Spring MVC但想要利用Spring支持的其他与Web相关的技术,您应该只依赖于spring-web

答案 1 :(得分:0)

来自官方文档: spring-web模块提供了基本的面向Web的集成功能,例如多部分文件上传功能以及使用Servlet侦听器和面向Web的应用程序上下文对IoC容器的初始化。它还包含HTTP客户端以及Spring远程支持的Web相关部分。

spring-webmvc模块(也称为Web-Servlet模块)包含Spring的model-view-controller(MVC)和REST Web Services实现的Web应用程序。 Spring的MVC框架在域模型代码和Web表单之间提供了清晰的分隔,并与Spring框架的所有其他功能集成在一起。

spring-webmvc-portlet模块(也称为Web-Portlet模块)提供了可在Portlet环境中使用的MVC实现,并镜像了基于Servlet的spring-webmvc模块的功能。

https://docs.spring.io/spring/docs/4.3.22.RELEASE/spring-framework-reference/htmlsingle/#overview-web