Spring引导抽象Controller请求映射

时间:2017-05-17 00:57:54

标签: rest spring-boot httprequest abstract-class

我在Spring Boot应用程序中进行了以下设置:

@RestController
@RequestMapping ("/main/**")
class Child extends Parent {
// Child code
}

abstract class Parent {
// Other code
@RequestMapping ("/sub/**")
public ResponseEntity handle(RequestEntity re) {

 // Expected to handle requests with path pattern /main/sub/**

}

目标是让抽象父控制器中的handle()方法接收路径模式的所有传入请求" / main / sub / **"。

但它没有用。虽然它可以工作,如果我将句柄方法(来自父控制器)放在子控制器内及其请求映射。

有人可以帮我识别我在这里失踪的东西吗?

Ralf建议的以下更详细的代码:

    @RestController
    @RequestMapping ("/main/**")
    class Child<T> extends Parent<T> {
    // Child code only overrides those methods defined in the parent, and has no request mapping for any method within this class. And it does not override the handle() method defined in parent.
    }

    abstract class Parent<T> {
    // Other code
    @RequestMapping ("/sub/**")
    public @ResponseBody ResponseEntity<?> handle(RequestEntity<T> re) {
     // Expected to handle requests with path pattern /main/sub/
    }
}

1 个答案:

答案 0 :(得分:1)

试过你的例子,按预期工作,除了一种情况:如果你的子控制器中有一个方法句柄(RequestEntity),那么这会覆盖你父控制器中的一个,它永远不会被调用。如果情况并非如此,您能否提供您的儿童管制员代码?