Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC(SpringBoot)-请求映射继承_Java_Spring_Spring Mvc_Spring Boot_Request Mapping - Fatal编程技术网

Java SpringMVC(SpringBoot)-请求映射继承

Java SpringMVC(SpringBoot)-请求映射继承,java,spring,spring-mvc,spring-boot,request-mapping,Java,Spring,Spring Mvc,Spring Boot,Request Mapping,编辑:请认真阅读问题,我不需要重复我所写内容的答案 环顾网络,我发现这个问题相当混乱。 我要寻找的是一种扩展控制器的请求映射注释值的好方法 例如: @Controller @RequestMapping("/api") public class ApiController {} @Controller @RequestMapping("/dashboard") public class DashboardApiController extends ApiController {} 结果应该是

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

环顾网络,我发现这个问题相当混乱。 我要寻找的是一种扩展
控制器
请求映射
注释值的好方法

例如:

@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("/api")
public class DashboardApiController extends WhateverClassWithWhateverMapping
{
   @RequestMapping("/dashboard")
   public String dashboardHome() {
      return "dashboard";
   }

}
在这种情况下,它将是“/api/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 {}

这个问题已经存在了。。。我知道可能是@MuhammadFaisalHyder的复制品。我们现在有了较新版本的SpringMVC和SpringBoot,但文档一直以来都有一点透明。另外,可能有人想出了一个很好的方法来解决这个问题。这并没有回答最初的问题
WhateverClassWithWhateverMapping
在您的情况下是无用的,但在问题中,它是答案的关键