如何使用Jersey 2.5将参数传递给REST资源

我有一个服务于我的客户端的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

除了使用dependency injection之外的另一个选择是自己实例化和注册REST端点。 Jersey允许你以与dependency injection非常相似的方式执行此操作,如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)); .... } }