位置:方法或类上方。用于类上,表示类中的所有控制器方法都是以该地址作为父路径。 作用:给控制器方法设置请求路径 属性: value/path:请求路径 method:指定请求方式 params:规定必须发送的请求参数 headers:规定请求必须包含的请求头
1. 映射到指定的URL路径:
@RestController
@RequestMapping("/api")
public class ApiController {
@RequestMapping("/users")
public List getUsers() {
// 处理获取用户列表的逻辑
}
}
```
上述示例中,通过在类上标注@RequestMapping注解,并指定路径为"/api",所有方法的请求路径都会以"/api"开头。
2. 映射到不同的HTTP请求方法:
@RestController
@RequestMapping("/api")
public class ApiController {
@RequestMapping(value = "/users", method = RequestMethod.GET)
public List getUsers() {
// 处理获取用户列表的逻辑
}
@RequestMapping(value = "/users", method = RequestMethod.POST)
public void createUser(@RequestBody User user) {
// 处理创建用户的逻辑
}
}
上述示例中,使用@RequestMapping注解对不同的方法指定了不同的请求方法(GET和POST)。
3. 根据请求参数进行映射:
```
@RestController
@RequestMapping("/api")
public class ApiController {
@RequestMapping(value = "/users", params = "id")
public User getUserById(@RequestParam("id") int id) {
// 根据id获取用户的逻辑
}
@RequestMapping(value = "/users", params = "name")
public List getUsersByName(@RequestParam("name") String name) {
// 根据name获取用户列表的逻辑
}
}
```
上述示例中,使用@RequestParam注解指定了请求参数,根据不同的参数进行不同的映射。
4. 映射到不同的请求头:
```
@RestController
@RequestMapping("/api")
public class ApiController {
@RequestMapping(value = "/users", headers = "Content-Type=application/json")
public List getUsers() {
// 处理获取用户列表的逻辑
}
}
```
上述示例中,使用@RequestMapping注解对请求头进行了限定,只有Content-Type为application/json的请求会被映射到这个方法。
位置:方法参数前
作用:在控制器方法中获取请求参数
属性:
name:指定请求参数名称
defaultValue: 为参数设置默认值
required:设置是否是必须要传入的参数
示例
@RequestParam(name = "username",defaultValue = "jkw",required = false) String name
作用:将请求中JSON格式的参数转为JAVA对象
位置:方法参数前
作用:标明控制器,将此类交给Spring容器管理
位置:类上方
作用:方法返回的对象转换为JSON格式,并将JSON数据直接写入到输出流中【使用此注解后不会再经过视图解析器】
位置:方法上方或方法返回值前
作用:相当于@Controller+@ResponseBody,作用于每一个类
位置:类上方
位置:方法参数前
作用:在控制器方法中获取请求头数据
@RequestHeader("User-Agent") String userAgent
位置:方法参数前
作用:在控制器方法中获取Cookie数据
位置:类上方
作用:将Model模型中的数据存到session域中
@SessionAttributes("name")
位置:方法上方
作用:设置指定方法在控制器其他方法前执行【本类的前置方法】