spring-webmvc和spring-web有什么区别
前言-MVC 和web MVC ,SpringMVC和Spring web MVC的关系与区别?
- MVC 是一种架构分层模式
- web MVC 是指在 web 领域下实践的 MVC,因为 web 领域的视图层跟 native 应用的视图层不太能划等号
- Spring MVC 和 Spring Web MVC 是同一个东西,就是 Spring Framework 里的一个模块。在 Spring Framework 介绍页面 写的是 Spring MVC,然而点进去后具体的描述页面 使用 Spring Web MVC 来称呼
文档里有这么一句话:
The formal name “Spring Web MVC” comes from the name of its source module spring-webmvc but it is more commonly known as “Spring MVC”.
所以说正式名称叫 Spring Web MVC,不过大多数人都喜欢叫 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-web 提供核心的HTTP集成,包括一些方便的Servlet过滤器,Spring HTTP
Invoker,与其他Web框架和HTTP技术(例如Hessian,Burlap)集成的基础结构,spring-web的依赖:
序列化技术 protobuf,gson,hession,
http 工具 httpclient,okhttp
netty 依赖
spring 框架依赖 spring-aop,spring-beans,spring-context,spring-core,spring-oxm
servlet 依赖 javax.servlet-api - spring-webmvc是Spring MVC的一个实现。spring-webmvc依赖spring- web,因此包括它会传递性增加spring-web。您不必spring-web显式添加。
如果您不使用Spring MVC,但想利用Spring支持的其他与Web相关的技术,则应该仅依赖spring-web。
stackoverflow参考:https://stackoverflow.com/questions/13533700/maven-dependency-spring-web-vs-spring-webmvc
工程结构差别
spring-web
spring-web提供核心的HTTP集成,包括一些方便的Servlet过滤器,Spring HTTP Invoker,用于与其他Web框架和HTTP技术集成的基础设施。
http(http协议的实现类)和web包(应用,上下文,会话,cookies,过滤器等等)
比如大家都熟悉的web.xml里的引入:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
spring-web还提供 对远程调用和远程服务的支持。
spring-web-mvc
spring-mvc提供了基于spring的web的MVC模式,webmvc主要是增加了对spring MVC的支持,包括一些view层的核心封装,提供各前端技术及标签支持,restful协议、国际化等模块。
view层的核心封装,提供各前端技术及标签支持。
servlet包(各种view引擎:FreeMarker,Velocity,Jasper,Tiles,Grooy的配置;各种处理器;国际化i118n;mvc中的Controller的定义;基于cookies,会话的主题配置;各种HTML标签的对应类)