前言
Spring Framework的Web层,由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成。
很多人刚学时分不清Spring Web/Spring MVC有什么区别
- spring-web模块提供基本的面向Web的集成功能,例如多文件上传功能和使用Servlet监听器和面向Web的应用程序上下文来初始化IoC容器。 它还包含一个HTTP客户端和Web的相关部分的Spring的远程支持。
- spring-webmvc模块(也称为Web-Servlet模块)包含用于Web应用程序的Spring的模型视图控制器(MVC)和REST Web服务实现。 Spring的MVC框架提供了域模型代码和Web表单之间的分离,并与Spring框架的所有其他功能集成。
Spring 优势
•支持REST风格的URL
•添加更多注解,可完全注解驱动
•引入HTTP输入输出转换器(HttpMessageConverter)
•和数据转换、格式化、验证框架无缝集成
•对静态资源处理提供特殊支持
•更加灵活的控制器方法签名,可完全独立于Servlet API
Spring MVC4.X新特性
-
- 可以使用Groovy DSL定义外部bean配置(4.0)。
- 新增@RestController注解(4.0)。
- 新增AsyncRestTemplate类,开发REST客户端时允许非阻塞异步支持(4.0)。
- JDK 1.8的java.util.Optional现在支持@RequestParam,@RequestHeader和@MatrixVariable控制器方法参数(4.1)。
- Jackson的@JsonView直接支持@ResponseBody和ResponseEntity控制器方法(4.1)。
- 内置对CORS的支持(4.2)。
- 新的@GetMapping,@PostMapping,@PutMapping,@DeleteMapping和@PatchMapping @RequestMapping的组合注释(4.3)。
- 新的@SessionAttribute @RequestAttribute注释用于访问session、request属性(4.3)。