从 parent 的 @RequestMapping 访问 @PathVariables

Access @PathVariables from parent's @RequestMapping

我正在尝试访问“MyClass”的@RequestMapping parent 中定义的@PathVariables。 简化场景:

@RestController
@RequestMapping(value = "some/path/{with}/{multiple}/{variables}")
public class ParentClass {...}

此 class 是某种产品的基础 class,不应编辑。因此我要扩展 'ParentClass'。在 'MyClass' 我想做这样的事情:

@GetMapping("/{another}")
public Object get(@PathVariable("another") String another) {...}

我认为这是允许的(尚未测试),但我不明白我将如何获得已使用 'ParentClass'.

定义的所有 PathVariables

非常感谢任何想法/RTFM 参考。

是的,这是可能的

@RestController
@RequestMapping("/a/{a}/b/{b}")
class Parent{
}

@RestController
class Child extends Parent{
 
 // take over pathvariables from parent
 @GetMapping("/c/{c}")
 public String abc(@PathVariable String a,@PathVariable String b, @PathVariable String c) {
        return a+b+c;
 }
 
 // ignore pathvariables from parent
 @GetMapping("/d/{d}")
 public String d(@PathVariable String d){
  return d;
 }

}

刚刚接手@Pathvaribles的Parent-class

然后像 http://localhost:8080/a/x/b/y/c/z 这样的请求 将 return "xyz"

还有像 http://localhost:8080/a/ignore-a/b/ignore-b/d/capure-d 这样的请求 将 return “capure-d”