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
放在抽象方法上),但您需要指定完整的基本路径。
因为我需要提供两个 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
放在抽象方法上),但您需要指定完整的基本路径。