Spring web 与 Spring MVC 的区别
Spring 的Web层中有4个模块,分别为spring-web
, spring-webmvc
, spring-websocket
和 spring-webmvc-portlet
。
spring-web
spring-web 提供了核心的Web相关功能的集成,比如IoC容器的初始化、Web应用上下文(context)的初始化、多部(multipart)文件上传功能、HTTP客户端、Servlet 过滤器、远程调用、用于集成其它 web 框架及技术(如Hessian,Burlap)的基础结构。
spring-webmvc
spring-webmvc 也即 Web-Servlet 模块,它是 Spring MVC 和 REST 的实现(不过奇怪的是,@RestController、@ResponseBody等注解却是放在spring-web模块中的!),并清晰地分离了 domain model 与 web form 的代码。
spring-webmvc 依赖 spring-web,因此引入spring-webmvc 就会间接添加 spring-web,而不必再显式添加 spring-web。
如果不使用 Spring MVC,只是想使用其它 Spring 支持的 web 相关技术的优势,那么只需依赖 spring-web 即可。
spri-webmvc-portlet
spring-webmvc-portlet 模块即 Web-Portlet 模块,它提供用于portlet环境的 MVC 实现,并具有与 spring-webmvc 模块相同的功能。
spring-websocket
如其名称所示,是Spring对websocket的实现。