Spring 启动@RequestMapping 继承

Spring Boot @RequestMapping Inheritance

因为我需要提供两个 API,在大多数情况下控制器都非常相似,因此我想使用抽象控制器和子控制器来实现如下路由:

/sym/products
/frontend/products

其中 "sym" 或 "frontend" 部分应该由抽象超级classes(控制器)生成,例如

@RestController
@CrossOrigin
@RequestMapping("sym")
public abstract class SymphonyBaseController {}

@RestController
@CrossOrigin
@RequestMapping("frontend")
public abstract class FrontendBaseController {}

所以我可以这样做:

@RestController
@CrossOrigin
@RequestMapping("products")
public class ProductController extends SymphonyBaseController {}

顺便说一句:子 class 中的这些注释(@RestController 和 @CrossOrigin)在已经在超级 class 中注释时仍然是必需的吗?)

我的问题: 路线未被注册。我只有一条路线:/products

如何解决这个问题?

非常感谢您的帮助! 提前致谢,

蒂姆

子classes 上完全相同的参数覆盖 的值,它们不会累积。控制器 methods 上的路径参数附加到 class 上定义的任何映射(因此,例如,如果您愿意,可以将 /products 放在抽象方法上),但您需要指定完整的基本路径。