一个类想要变成控制类,只需要在类上加一个@Controller注解即可,其作用为指定请求路径及其对应的处理方法。
一、请求路径
常用注解 :可以直接使用@RequestMapping、@PostMapping、@GetMapping、@PutMapping、@DeleteMapping等注解指定某个方法对应的请求路径,从注解的名称其实就可以看出来,除了第一个注解是可以自定义请求方式的,后面的几个注解的请求方式都已经写死了。
指定请求路径 :以注解@RequestMapping为例,在对应的方法上使用注解 @RequestMapping(value = "/string-demo", method = RequestMethod.GET)
指定请求路径,指定之后,在浏览器输入 http://localhost:8080/string-demo
即可访问。这个注解也可以放在类上,此时指定的请求路径就表示这个类下的所有方法请求路径的前缀了,一个方法最终的完整请求路径就会是“类+方法”的请求路径了。另外,如果method参数不指定的话,这个方法将接收所有满足条件的请求。
接收请求body :@PostMapping这类请求方式如果需要接收请求body,那么需要在对应的方法参数上使用@RequestBody注解进行接收。
package com.yun.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping(value = "/hello")
public class MvcDemoController {
// 浏览器访问:http://localhost:8081/hello/string-demo
@RequestMapping(value = "/string-demo", method = RequestMethod.GET)
// 自动解析返回值到浏览器
@ResponseBody
public String stringDemo() {
return "String demo";
}
@PostMapping(value="/object-demo")
@ResponseBody
public Object objectDemo(@RequestBody Object body) {
return body;
}
}
二、返回值类型
在处理请求方法上通常会加上注解@ResponseBody,表示根据返回值类型,自动解析返回值到前端,返回值类型通常有String、Object、Map,也可以将返回值统一定义为Object类型,@ResponseBody注解都可以自动解析后返回。
package com.yun.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@Controller
@RequestMapping(value = "/hello")
public class MvcDemoController {
@RequestMapping(value="/map-demo")
@ResponseBody
public Map<String, Object> mapDemo() {
HashMap<String, Object> responseMap = new HashMap<>();
responseMap.put("message", "Map demo");
return responseMap;
}
}
标签:RequestMapping,请求,demo,笔记,Controller,import,注解,SpringBoot
From: https://www.cnblogs.com/guyuyun/p/16846455.html