Spring @RequestMapping绝对路径

时间:2016-08-04 14:30:45

标签: java spring spring-restcontroller

我有一个用于CRUD的RestController注释如下:

@RestController
@RequestMapping("/rest/v1/area")
public class AreaController

我的方法注释如下:

@RequestMapping(value = "/{uuid}", method = RequestMethod.PUT)
public ResponseEntity<Area> save(@Valid @RequestBody Area area) {

有没有办法使用方法的值来获得绝对路径?我想添加一个上传文件的方法,并且不想为此创建一个新的Controller。我想要一个像这样的方法:

@RequestMapping(value = "/rest/v1/area-upload", method = RequestMethod.PUT
public String handleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {

谢谢!

2 个答案:

答案 0 :(得分:7)

来自文档:(spring 2.5 api document of requestmapping

  

方法级别映射仅允许缩小在类级别(如果有)

表示的映射

所以你不能覆盖,只能将其缩小到子路径。

当然,如果您创建一个新的控制器类并将该方法放在那里,您可以让它指向您喜欢的任何路径。

答案 1 :(得分:2)

您只需更改控制器的路由映射即可。

@RestController
@RequestMapping("/rest/v1")
public class AreaController

并且方法的映射将是:

@RequestMapping(value = "/area-upload", method = RequestMethod.PUT
public String handleFileUpload(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes) {