java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Spring:spring-webmvc和spring-web区别

Spring:spring-webmvc和spring-web有哪些区别

作者:非著名JAVA程序员

这篇文章主要介绍了Spring:spring-webmvc和spring-web有哪些区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

MVC 和web MVC ,SpringMVC和Spring web MVC的关系与区别?

1.MVC 是一种架构分层模式

2.web MVC 是指在 web 领域下实践的 MVC,因为 web 领域的视图层跟 native 应用的视图层不太能划等号

3.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>

1.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

2.servlet 依赖 javax.servlet-apispring-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标签的对应类)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文