Создайте новый экземпляр ресурса для каждого запроса в 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, и это так.


person user3772608    schedule 24.06.2014    source источник


Ответы (1)


Вы должны иметь возможность зарегистрировать ресурс следующим образом:

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

и новый экземпляр будет создан для каждого запроса.

person condit    schedule 24.06.2014
comment
Новый экземпляр MyResource? - person siddhusingh; 01.03.2019