编辑:请认真阅读问题,我不需要重复我写的答案。
在网上浏览时,我发现这个主题很混乱。
我正在寻找的是扩展Controller
的RequestMapping
注释的值的好方法。
如:
@Controller
@RequestMapping("/api")
public class ApiController {}
@Controller
@RequestMapping("/dashboard")
public class DashboardApiController extends ApiController {}
结果应为
("/api/dashboard")
。这种方法显然简单地覆盖了
RequestMapping
值。一种可行的方法可能是不要在派生类上放置RequestMapping注释。
@Controller
public class DashboardApiController extends ApiController
{
@GetMapping("/dashboard")
public String dashboardHome() {
return "dashboard";
}
... other methods prefixed with "/dashboard"
}
这是唯一可行的方法吗?我不太喜欢
最佳答案
这不是您要寻找的优雅解决方案,但这是我使用的功能性解决方案。
@Controller
@RequestMapping(BASE_URI)
public class ApiController {
protected final static String BASE_URI = "/api";
}
@Controller
@RequestMapping(ApiController.BASE_URI + "/dashboard")
public class DashboardApiController extends ApiController {}