我正在尝试重构我的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,情况就是这样。

最佳答案

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

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


并且将根据请求创建一个新实例。

10-07 13:52