【发布时间】:2016-02-16 04:05:36
【问题描述】:
我正在使用 spring boot 编写一个 api,我想将我的所有资源映射到一个公共基本路径(在本例中为 /api)后面。但是,我不想注释每个 RestController 类来执行此操作(例如,通过使用 @RequestMapping 对其进行注释)。 我已经考虑过以下解决方案,但它们都有我不希望的缺点:
- 创建一个基类(例如ApiRestController)并让所有其他RestController 继承这个。这样做的缺点是类级别的 @Requestmapping 没有在基类和实现类之间合并。
- 注释所有 RestController 但这会导致代码重复
- 更改 server.context-path 属性。这样做的缺点是所有端点都将使用此基本路径。甚至是执行器项目公开的端点。
- 使用自定义 DispatcherServlet 和 ServletRegistrationBean。但这似乎与更改 server.context-path 的效果相同。
那么有谁知道如何做到这一点而没有我总结的解决方案的缺点。该项目将仅公开基于 REST 的后端,并且不会提供任何静态内容(不知道这是否会影响可能的解决方案)。 Restcontrollers 也分为多个包。
谢谢。
【问题讨论】:
-
如果我理解正确的话,Spring 上有一个关于这个特性的问题:jira.spring.io/browse/SPR-16336
-
@Dherik 提到的问题已关闭,我找不到解决方案。您找到解决此问题的方法了吗?
-
现在我不得不接受这个解决方法,它将这个特定路径作为一个属性放在 yml 中并使用 spEL - stackoverflow.com/a/35699678/5035525
标签: spring rest spring-boot