簡體   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