繁体   English   中英

Jersey在SpringBoot 3中如何与MVC一起使用?

[英]How to use Jersey and MVC together In SpringBoot 3?

让我们考虑一个 SpringBoot 2+ web 应用程序。

Jersey 中写入了几个遗留端点。所有新端点都应该使用 Spring MVC 定义。

由于 Jersey 端点不能立即转换为 MVC,我正在寻找一种方法来顺利进行转换:

  1. 在应用程序中保留 Jersey 和 MVC 端点
  2. 保留指向 Jersey 端点的所有 URL 路径不变
  3. 尽量减少对新 MVC 端点路径的侵入

inte.net 指南中讨论的将 Jersey 和 MVC 保持在一起的最流行方法提到了@ApplicationPath用于 Jersey 配置的用法

@Configuration
@ApplicationPath("/special/prefix")
class JerseyConfig extends ResourceConfig {
    ...
}

不幸的是,这导致对每个 Jersey 端点路径使用"/special/prefix" ,这与意图 #2(保留不变的 URL 路径...)相矛盾。

做相反的事情会很棒:为 Spring MVC 端点定义特殊路径前缀或者可能更优雅的方法(例如使用标头路由到 MVC),并保持 Jersey 路径原样 - 就像“没有前缀的默认路径”。

默认情况下路由到 Jersey 端点的最小配置的标准方法是什么 - 如果找不到 - 然后路由到 Spring MVC 端点?

应用程序.properties

spring.mvc.servlet.path=/mvc/prefix

JerseyConfig.java (标准Jersey配置)

@Configuration
@ApplicationPath("/")  // this is optional; by default (path == "/") if @ApplicationPath is absent
class JerseyConfig extends ResourceConfig {

    JerseyConfig() {
        packages("my.example.jersey", "other.package"); // recursive scan
    }
}

我们可以选择为所有端点添加属性设置全局公共前缀server.servlet.context-path=/global/api/prefix

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM