spring mvc记录

2023年3月9日

0.工作流程

image

image

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使用

postman安装地址
安装失败解决

6.后台log输出

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
	
	//使用
	log.info()
posted @ 2023-03-09 19:20  badpear  阅读(20)  评论(0)    收藏  举报