Spring MVC 常用注解

61 阅读1分钟

标记 Controller 的注解 @Controller

  • 用 @Controller 注解来标注 Controller 类,告诉 Spring 这是一个 bean,Spring IoC 容器会创建并管理这个 bean

image.png

定义映射的注解 @RequestMapping、@GetMapping、@PostMapping

  • @RequestMapping 用于将 HTTP 请求映射到控制器的处理方法上。
  • @RequestMapping 用于修饰类,也可以用于修饰方法。
  • 当 @RequestMapping 用于修饰方法时,可以指定请求方法的类型(Get or Post)。

image.png

  • 当 @RequestMapping 修饰的方法类型为 Get 时,可以用 @GetMapping 代替

image.png

  • 当 @RequestMapping 修饰的方法类型为 Post 时,可以用 @PostMapping 代替

image.png

获取参数的注解 @RequestParam、@RequestBody

  • @RequestParam 用于获取请求 url 携带的参数,一般是 GET 请求
  • 实质是将 Request.getParameter() 中的 Key-Value参数Map利用Spring的转化机制转化成参数接收对象或字段。
  • @RequestParam 要指定 value 属性,根据配置的 value 调用 Request.getParameter 方法来获取参数。
  • 一个方法可以有多个参数用 @RequestParam 注解来修饰。

image.png

  • @RequestBody 用于获取请求体 body 中的信息,一般是 POST 请求
  • 实质获取 body 中的内容(JSON格式),将 JSON 格式的字符串利用 Spring 的转化机制反序列化为对象参数。
  • 一个方法只可以有 1 个参数用 @RequestBody 注解来修饰。

image.png

理论上 @RequestParam 可以与 @RequestBody 在一个方法上同时使用,但不建议这样使用。

返回结果的注解 @ResponseBody

  • @ResponseBody 用于将处理方法返回的对象转换为指定的格式,并将其作为响应体返回给客户端。
  • 通常用于返回 JSON、XML 等格式的数据(主要就是 JSON 格式)。

image.png

@Controller 与 @ResponseBody 的结合 @RestController

  • 可以将 @Controller 和 @ResponseBody 用 @RestController 来替代

image.png