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

时间:2014-06-24 19:35:44

标签: rest jboss resources instance dropwizard

我正在尝试重构我的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 个答案:

答案 0 :(得分:6)

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

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

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