是否可以重写方法类型上的@RequestMapping?

2022-09-04 03:54:21

我有一个弹簧控制器/ POJO,如下所示:

@RequestMapping("/foo");
public class MyController {
    @RequestMapping("/bar") 
    public String MyAction() { return someSharedFunc(false); }

    @RequestMapping("/debug/ping");
    public String MyDebugPing() { return someSharedFunc(true); }

    private String someSharedFunc(boolean debug) {
      if(debug) return "FooBar"; else return "Debug!";
    }
}

在这种情况下,我的调试的 URL 是 。但是,我希望它是 ,有效地忽略了类上的 RequestMapping。/foo/debug/ping/debug/ping

这可能吗?


答案 1

只需从类中删除注释,然后为每个方法使用完整路径即可。例如:@RequestMapping

public class MyController {
    @RequestMapping("/foo/bar") 
    public String MyAction() { return someSharedFunc(false); }

    @RequestMapping("/debug/ping");
    public String MyDebugPing() { return someSharedFunc(true); }

    private String someSharedFunc(boolean debug) {
      if(debug) return "FooBar"; else return "Debug!";
    }
}

如果有很多方法,那么你可以简单地将方法移出到另一个控制器。


答案 2

推荐