文章目录
一、请求映射的艺术:RequestMapping深度解析
1. 多级路径配置
@Controller
@RequestMapping("/order") // 一级路径
public class OrderController {
@GetMapping("/create") // 二级路径
public String createOrder() {
return "order/create";
}
}
访问路径:/order/create
2. 六大核心属性
| 属性名 | 作用说明 | 示例值 |
|---|---|---|
| value | 定义请求路径(默认属性),支持多路径配置 | @RequestMapping("/user/list")@RequestMapping({"/list", "/all"}) |
| method | 限制HTTP请求方法类型 | method = RequestMethod.POSTmethod = {GET, POST} |
| params | 要求请求必须包含指定参数(支持表达式) | params = "userId"params = "!age"params = "type=admin" |
| headers | 校验请求头信息(支持正则匹配) | headers = "Content-Type=text/*"headers = "!X-Custom-Header" |
| consumes | 限制请求的媒体类型(Content-Type) | consumes = "application/json"consumes = "multipart/form-data" |
| produces | 指定响应内容的媒体类型(Accept) | produces = "text/html"produces = "application/pdf" |
典型配置示例
@RestController
@RequestMapping(value = "/api/v1/products",
produces = MediaType.APPLICATION_JSON_VALUE)
public class ProductController {
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE,
headers = "X-Request-Source=WEB")
public ResponseEntity<Product> createProduct(
@RequestParam("file") MultipartFile file,
@RequestParam("name") String productName
) {
// 业务逻辑...
}
}
3. RESTful风格实践
@RestController
@RequestMapping("/api/products")
public class ProductController {
@GetMapping("/{id}")
public Product getProduct(@PathVariable Long id) {
return productService.findById(id);
}
@PostMapping
public ResponseEntity<Product> createProduct(

1万+

被折叠的 条评论
为什么被折叠?



