spring mvc记录
2023年3月9日
0.工作流程
1.spring-boot-starter-web
在pom.xml中加入,用于快速配置web项目,加入该配置后运行就可做web后台使用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.注解
@RequestMapping
用于将任意HTTP 请求映射到控制器方法上。@RequestMapping表示共享映射,如果没有指定请求方式,将接收GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT所有的HTTP请求方式。@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping 都是HTTP方法特有的快捷方式@RequestMapping的变体。
RequestMapping可以映射到类和方法,变体只能映射方法。
@RestController
Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合。
@ResponseBody
支持将返回值放到response内,而不是一个页面,通常用户返回json数据。
@RequestBody
允许request的参数在request体中,而不是在直接连接的地址后面。(放在参数前)
@PathVariable
用于接收路径参数,比如@RequestMapping(“/hello/{name}”)声明的路径,将注解放在参数前,即可获取该值,通常作为Restful的接口实现方法。
@RequestParam
主要用于将请求参数区域的数据映射到控制层方法的参数上
@RequestParam(defaultValue = "0")
例子
@RestController
// 映射到类上
// localhost:8080/user
@RequestMapping("/user")
public class UserController {
// 映射到方法上
// localhost:8080/user/login
@RequestMapping("/login")
public String login() {
return "user login";
}
// 映射到方法上
// localhost:8080/user/register
@RequestMapping("/register")
public String register() {
return "user register";
}
}
总结
接收?后面的参数用@RequestParam
接收路径参数用@PathVariable
接收body参数用@RequestBody
@RestController的目的表示接下来要用con方式和返回json格式
3.json接收
一般用post的方法放在body传过来,创建一个专门的类来接受解析。
4.json发送
创建一个专门的result类,格式化发送
例子
public class Result<T> {
public int code;
public String msg;
public T data;
private Result(int code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public static <T> Result success(T data) {
Result r= new Result(0,"succ",null);
return r;
}
}
5.postman使用
6.后台log输出
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
//使用
log.info()