编辑:请认真阅读问题,我不需要重复我写的答案。

在网上浏览时,我发现这个主题很混乱。
我正在寻找的是扩展ControllerRequestMapping注释的值的好方法。

如:

@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 {}

08-27 22:33