我正在尝试重构我的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);
}
并且将根据请求创建一个新实例。