簡體   English   中英

如何使用Jersey 2.5將參數傳遞給REST資源

[英]How to pass parameters to REST resource using Jersey 2.5

我有一台為客戶服務的Java服務器(不是應用程序服務器)。

現在,我有興趣添加REST支持。 我已經初始化了Jetty服務器並創建了一些REST資源。

我的問題是: 如何在創建REST資源時傳遞參數?

通常,我更喜歡每種資源的構造函數,但我不控制它。

我了解有一種注入依賴項的方法。 如何使用Jersey 2.5做到這一點?

謝謝!

定義您的應用

public class MyApplication extends ResourceConfig {
  public MyApplication() {
    register(new FacadeBinder());
    register(JacksonFeature.class);
    register(MyEndpoint.class);
}

配置注入

public class FacadeBinder extends AbstractBinder {

  @Override
  protected void configure() {
    bind(MyManager.class).to(MyManager.class);
  }
}

在終端中注入已配置的類

@Path("/jersey")
public class MyEndpoint {
  @Inject
  MyManager myManager;
  ...
}

我不確定您對依賴項的含義。

您應該檢查以下內容: https : //jersey.java.net/documentation/latest/user-guide.html#d0e1810

除了使用依賴注入之外,另一個選擇是自己實例化和注冊REST端點。 Jersey允許您以與依賴注入類似的方式執行此操作,如Dymtro的示例所示。 從Dymtro大量借用,定義您的端點:

@Path("/jersey")
public class MyEndpoint {
    private MyManager myManager;
    public MyEndpoint(MyManager myManager) {
        this.myManager = myManager;
    }
    ....
}

定義您的應用程序:

public class MyApplication extends ResourceConfig {
    public MyApplication(MyManager myManager) {
        register(JacksonFeature.class);
        register(new MyEndpoint(myManager));
        ....
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM