私は、データベース操作用の専用スレッドプールをplay-akka設定ファイルを介して割り当てました。今私は、このスレッドプールを必要とするサービスをアクターシステムに注入し、実行コンテキストにアクセスしています。カスタムエグゼキュータを再生アプリケーションに挿入するにはどうすればよいですか?
public class ServiceA{
final Executor executionContext;
@Inject
public ServiceA(ActorSystem system) {
this.executionContext = system.dispatchers().lookup("akka.actor.db-context");
}
しかし、これでServiceAをテストすることは難しくなります。私が代わりにしたいのは、Executorを次のように直接注入することです:
public class ServiceA{
final Executor executionContext;
@Inject
public ServiceA(Executor dbExecutionCtx) {
this.executionContext = dbExecutionCtx;
}
どのようにすればいいですか?私はExeciceを注入するGuiceモジュールを作成しようとしましたが、起動されたアプリケーションがなく、クラスをバインドしているときにActorSystemにアクセスできないというエラーが出ます。
これは私がやったことの種類です。 getDispatcher()のようなメソッドを呼び出す必要がありますが、改善されたソリューションです。追加のメソッド呼び出しをせずにexecutorを直接注入する方法が他にもあるかどうかを調べようとしていました。 – jesukumar