Запуск потока в фоновом режиме при весенней загрузке и возможность автоматического подключения - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь создать приложение Spring Boot, которое будет запускать долго работающий поток в фоновом режиме, но проблема, с которой я сталкиваюсь, заключается в том, что я не могу автоматически связывать пружинные бины в потоке (по крайней мере, так, как я это делаю)

Я создал репозиторий, который показывает проблему, с которой я сталкиваюсь

https://github.com/NikosDim/spring-boot-background-thread

В классе BackgroundThread, который является моей нитью, я хочу иметь возможность для автоматического подключения объектов (ищите // TODO)

Спасибо

Ник

1 Ответ

1 голос
/ 22 января 2020

Вы должны сделать BackgroundThread a прототип bean:

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public BackgroundThread backgroundThreadBean(Dep1 dep1) {
    return new BackgroundThread(dep1);
}

Затем просто введите BackgroundThread в BackgroundThreadManager:

@Autowired
private BackgroundThread thread;

Если вам нужно динамически создать несколько экземпляров BackgroundThread, тогда можно использовать ObjectFactory. Введите фабрику в BackgroundThreadManager:

@Autowired
private ObjectFactory<BackgroundThread> backgroundThreadObjectFactory;

и вызовите метод ObjectFactory.getObject, чтобы создать новый экземпляр BackgroundThread.

Подробнее о prototype scope можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...