在DropWizard中每个请求创建新的Resource实例

3

我正在尝试重构我的REST API,以便我们可以使用DropWizard。

我遇到的问题是线程安全性。根据DropWizard的入门指南 - “资源类由多个线程同时使用。一般来说,我们建议资源是无状态/不可变的,但保持上下文非常重要。”

重新设计我的代码库需要进行重大改进 - 我想知道是否有一种方法可以配置DropWizard,使每个请求创建一个新的资源实例?

在我的run()方法中,我有类似以下的代码:

public void run(AppConfig configuration, Environment environment)
{
    final MyResource myResource = new MyResource();
    environment.jersey().register(myResource);
}

能否配置DropWizard,使得每个请求都创建一个全新的MyResource实例?目前我正在使用JBOSS,它是这样做的。

1个回答

7
您应该可以像这样注册资源:

您应该能够像这样注册资源:

public void run(AppConfig configuration, Environment environment) {
  environment.jersey().register(MyResource.class);
}

每个请求都会创建一个新的实例。


MyResource 的新实例? - siddhusingh
@siddhusingh 我知道可能有点晚了,但是没问题。 - Jalal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接