Runnableを実装し、Springに送信されたTaskExecutorが自動的に呼び出されるクラスはありますか?Spring TaskExecutorに送信されたタスクの自動化
例えば、私はタスクを持っている:
public class MyTask implements Runnable {
@Autowired private MyRepository myRepository;
@Override
public void run() {
myRepository.doSomething();
}
}
とスプリングのTaskExecutorにタスクを送信するサービス:
@Service
public class MyService {
@Autowired private TaskExecutor taskExecutor;
public void someMethod() {
MyTask myTask = new MyTask();
taskExecutor.execute(myTask);
}
}
私はMyTaskにはあるので、フィールドがautowiredされていない知っています新しいMyTask()を使用してインスタンス化されています。しかし、どうすればこれを回避できますか? SpringのApplicationContextにアクセスしてBeanを作成する必要がありますか?あなたはどのようにWebアプリケーション環境でこれを行いますか?
ありがとうございます!
はい、これは機能します。私はたくさんの依存関係を持っているので、Autowiringを作業に取り入れることを望んでいましたが、それらをすべて渡すことはしませんでしたが、その周りに道がないように見えます。 –
別の方法があります。アップデートを参照してください。 –
@EvgeniyDorofeev MyTaskをプロトタイプとしてどのように定義しましたか? – Dejell