代码实践:jLab-3-SpringMVC

1. 概述

使用SpringMVC所需要了解的相关信息。

2. 注解

2.1 @Controller

添加在类上,表示这是控制器 Controller;控制器负责接收请求、处理请求,并返回响应。

特性:

  • 自动映射 URL。@Controller 注解可以自动将请求映射到控制器的方法上。

  • 支持视图解析。@Controller 注解可以将方法的返回值解析为视图,并渲染到客户端。

2.2 @RestController

添加在类上,是 @Controller @ResponseBody 的组合注解。

直接使用接口方法的返回结果,经过 JSON/XML 等序列化方式,最终返回(无需使用 InternalResourceViewResolver 解析视图,返回 HTML 结果)。

注:目前主流架构都是前后端分离,后端只需提供API返回数据,因此,多数情况都是使用@RestController 注解

2.3 @RequestMapping

添加在类或方法上,标记该类/方法对应接口的配置信息。

属性:

  • path / value :接口路径,类型为数组 [ ],可以填写多个接口路径

  • method :请求方法,类型为数组 [ ],可以填写多个请求方法(GETPOSTPUTDELETE)。如果为空,则匹配所有请求方法。

  • headers 属性:请求头。

  • consumes 属性:请求头的提交内容类型( Content-Type )

  • produces 属性:请求头的( Accept )可接受类型。

2.4 @GetMapping、@PostMapping、@PutMapping、@DeleteMapping

  • @GetMapping 注解:对应 @GET 请求方法的 @RequestMapping 注解。

  • @PostMapping 注解:对应 @POST 请求方法的 @RequestMapping 注解。

  • @PutMapping 注解:对应 @PUT 请求方法的 @RequestMapping 注解。

  • @DeleteMapping 注解:对应 @DELETE 请求方法的 @RequestMapping 注解。

2.5 @RequestParam

添加在方法参数上,标记该方法参数对应的请求参数的信息。

属性:

  • name / value :对应的请求参数名。如果为空,则直接使用方法上的参数变量名。

  • required 属性:参数是否必须传。默认为 true ,表示必传。

  • defaultValue 属性:参数默认值。

2.6 @PathVariable

添加在方法参数上,标记接口路径和方法参数的映射关系。

相比 @RequestParam 注解,少一个 defaultValue属性。