在每个类之前申明@RestController注释
@RestController 是@controller和@ResponseBody 的结合
@Controller 是将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化
@ResponseBody 是指该类中所有的API接口返回的数据都会以JSON字符串的形式返回给客户端
声明API接口@RequestMapping注释
@RequestMapping注解是一个用来处理请求的注解,可用于映射一个请求或一个方法,可以用在类或方法上(类上表示访问每个方法链接前必须带入类上的注释名,如:http://localhost:8888/main/test)
@RestController
@RequestMapping("/main")
public class User {
@RequestMapping("/test")
public String hello() {
return "hello world!!";
}
}
一属性定义:value定义访问名称、params定义请求参数中必须包含该属性 、method定义类型默认GET请求,支持多个类型使用对象通过逗号隔开,如:@RequestMapping(value ="/test", method = {RequestMethod.GET, RequestMethod.POST})。
二获取传参:在方法中定义传参类型,即可获取改传参数据,如:
public String hello(int id) {
return "hello world!!"+id;
}
三HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,可以通过改对象获取参数、请求头信息等
四HttpServletResponse则是对服务器的响应对象。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法
package com.example.demo;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.*;
@RestController
@RequestMapping(value = "/main")
public class User {
@RequestMapping(value ="/test",params = "id", method = {RequestMethod.GET, RequestMethod.POST})
public String hello(HttpServletRequest request, HttpServletResponse response) {
System.out.println(request);
System.out.println(response);
return "hello world!!";
}
}
扩展注释
@Autowired:类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作
@GetMapping:处理get方式请求的映射
@PostMapping:处理post方式请求的映射
@PutMapping:处理put方式请求的映射
@DeleteMapping:处理delete方式请求的映射
@GetMapping就相当于@RequestMapping(method=RequestMethod.GET),它会将get映射到特定的方法上