我的Spring Boot应用程序中有几个REST端点。 我们目前正在使用JAX-RS / Apache CXF(在我们的Facade REST端点类中使用javax.ws.rs.Path注释),目前正在迁移到Spring REST(MVC)。 由于端点类的数量很多,我们的结构如下:
com.example.domain1.Facade1.java - @Path("facade1path)
com.example.domain1.Facade2.java - @Path("facade2path)
... (much more "Facade" classes in com.example.domain1 package)
com.example.domain2.Facade3.java - @Path("facade3path)
com.example.domain2.Facade4.java - @Path("facade4path)
... (much more "Facade" classes in com.example.domain2 package)
我们以路径设置为:
的方式配置应用程序"/api/domain1/facade1path" -> Facade1.java
"/api/domain1/facade2path" -> Facade2.java
"/api/domain2/facade3path" -> Facade3.java
"/api/domain2/facade4path" -> Facade4.java
使用旧的JAX-RS / CXF配置,我们能够以非常优雅的方式实现这一点,而无需重复" / api / domain1 /"所有@Path注释中的" / api / domain2 /。 我们已经设置了多个" jaxrs-server"以这种方式在特定CXF配置中的元素:
<jaxrs:server id="Domain1Server" address="/api/domain1" basePackages="com.example.domain1" />
<jaxrs:server id="Domain2Server" address="/api/domain2" basePackages="com.example.domain2" />
它有效: - )
有没有办法如何使用Spring REST / MVC实现类似的功能,而无需重复&#34; api / domain1&#34;或&#34; api / domain2&#34;在多个控制器类的注释中 -
@RequestMapping("api/domain1/facade1path"), @RequestMapping("api/domain1/facade2path"),
等?
没有找到任何类型的资源,表明到目前为止这可能在某种程度上是可能的,也许这是不可能的,但如果有一些黑客如何做它会很好: - )
提前致谢,任何人!
答案 0 :(得分:0)
在Spring中创建两个Controller类,并在控制器类级别设置baseUrl。
首先如下所示:
QtConcurrent
第二个看起来像:
@RestController
@RequestMapping("/api/domain1")
public class DomainOneController {
@RequestMapping("/facade1path"),
@RequestMapping("/facade2path") ...
}