@RequestMapping 是一个用来处理请求地址映射的注解,它可以用于类上,也可以用于方法上。在类的级别 上的注解会将一个特定请求或者请求模式映射到一个控制器之上,表示类中的所有响应请求的方法都是以该地 址作为父路径;在方法的级别表示进一步指定到处理方法的映射关系。
@Controller
@RequestMapping("/test") 表示当前类中每个方法映射路径的统一前缀/test
public class TestController {
@RequestMapping("/get") 针对方法的映射,加上类上的映射配置,则当前方法
的请求地址为/test/get
public String get(){
return "user"
}
}
该注解有6个属性:一般在项目中比较常用的有三个属性:value、method 和 produce。
- value 属性:指定请求的实际地址,如果注解中只有一个 value 属性时,value=可以省略不写。
- method 属性:指定请求的类型,主要有 GET、PUT、POST、DELETE,默认为 GET。如果没有对应请求 方法的定义,则页面上报错 type=Method Not Allowed, status=405。
- produces 属性:指定返回内容类型,如 produces = "application/json; charset=UTF-8。
- consumes属性: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
- params: 指定request中必须包含某些参数值是,才让该方法处理。
- headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
@RestController
@RequestMapping(value = "/test", produces = "application/json; charset=UTF-8")
public class TestController {
@RequestMapping(value = "/bbbb", method = RequestMethod.GET)
public String testGet() {
return "success";
}
}
针对 GET、POST、DELETE 和 PUT 四种不同的请求方式是有相应注解的。
例如@GetMapping、@PostMappging 等,使用对应请求的注解后则不用每次在@RequestMapping 注解中加 method 属性来指定,上面的 GET 方式 请求可以直接使用@GetMapping("/bbbb")注解,效果一样。
相应地 PUT 方式、POST 方式和 DELETE 方式对 应注解分别为@PutMapping、@PostMapping 和DeleteMapping。