gpt4 book ai didi

java - 如何在 Spring 中重载具有相同前缀 uri 的不同方法的映射?

转载 作者:行者123 更新时间:2023-12-02 01:45:04 25 4
gpt4 key购买 nike

我正在尝试将具有相同前缀的两个不同 URI 映射到两个不同的处理程序

POST“资源”-> resourcesBl.create

POST“资源/{path_variable}”-> resourcesBl.createOther

注意 - 每个请求正文都不同

Spring 不会自动执行此操作

@RestController
@RequestMapping("resource")
public class MyController {

@Autowired
private ResourcesBl resourcesBl;

@PostMapping
public Resource create(@RequestBody Resource resource) {
return resourcesBl.create(resource);
}

@PostMapping("/{resourceName}"}
public OtherResource create(@PathVariable String resourceName, @RequestBody OtherResource otherResource, ) {
return resourcesBl.createOther(otherResource);
}

}

最佳答案

我已经用 Postman 尝试过这个解决方案,它工作得很好并且采用路径变量,两个映射都可以用不同的主体调用。

@RestController
@RequestMapping("/resource")
public class MyController {

@Autowired
private ResourcesBl resourcesBl;

@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public Resource create(@RequestBody Resource resource) {
return resourcesBl.create(resource);
}

@RequestMapping(value = "/{resourceName}", method = RequestMethod.POST)
@ResponseBody
public OtherResource create(@PathVariable String resourceName,
@RequestBody OtherResource otherResource) {
return resourcesBl.createOther(resourceName, otherResource);
}
}

所有具有空路径参数的请求都将映射到第一个方法,因此:“/resource”和“/resource/”。斜杠之后到第二个的任何内容。

注意:不要忘记使用路径变量。

关于java - 如何在 Spring 中重载具有相同前缀 uri 的不同方法的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57464622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com