バックグラウンドで長時間実行されているスレッドを実行するSpring Bootアプリケーションを構築しようとしていますが、問題は、スレッドでSpring Beanを自動ワイヤリングできないことです(少なくとも私が行っている方法です)。
私が直面している問題を示すレポを作成しました
https://github.com/NikosDim/spring-boot-background-thread
私のスレッドであるBackgroundThreadクラスで、オブジェクトを自動配線できるようにしたい(// TODOを探す)
ありがとう
ニック
プロトタイプ Bean を作成する必要がBackgroundThread
あります。
@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
。
プロトタイプスコープの詳細については、こちらをご覧ください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加