我正在尝试重构我的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,情况就是这样。
答案 0 :(得分:6)
您应该可以像这样注册资源:
public void run(AppConfig configuration, Environment environment) {
environment.jersey().register(MyResource.class);
}
并且每个请求都会创建一个新实例。