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

use*_*608 3 rest resources jboss instance dropwizard

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

我遇到的问题是线程安全.根据DropWizard的入门 - "资源类被多个线程同时使用.一般来说,我们建议资源是无状态/不可变的,但重要的是要记住上下文."

它需要进行重大改造来重构我的代码库 - 我很好奇是否有办法配置DropWizard以便每个请求创建一个新的资源实例?

在我的run()方法中,我的代码如下所示:

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

是否可以配置DropWizard以便为每个请求创建一个新的MyResource实例?目前我正在使用JBOSS,情况就是这样.

con*_*dit 7

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

public void run(AppConfig configuration, Environment environment) {
  environment.jersey().register(MyResource.class);
}
Run Code Online (Sandbox Code Playgroud)

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