2017-05-17 65 views
0

我有以下设置在我的春天启动的应用程序:春天开机抽象控制器请求映射

@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/** 

} 

我们的目标是在抽象父控制器手柄()方法来接收路径模式的所有传入的请求“/主/副/ **”。

但它不工作。尽管如果我将子句柄中的句柄方法(从父控制器)放在子控制器中以及它的请求映射中,它仍然有效。

有人能帮我找出我在这里失踪的事吗?下面

更详细的代码建议由拉尔夫:

@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

只是想你例如,按预期工作,除了一种情况:如果在你的孩子控制器的方法处理(RequestEntity),比这覆盖父控制器中的一个,并且它永远不会被调用。如果情况并非如此,您能否提供您的孩子控制器代码?

+0

感谢您的期待。我在上面的文章中添加了详细的代码。除了已更新的使用类模板变量之外,没有显着差异。我想知道这是否与请求映射失败有关。 – Ram