私のアプリケーションは Guice の上に構築され、スケジュールされたジョブ (cron4j) を実行します。これは、本質的に @Singleton インスタンスに関連する問題を示しています。
私の問題に対する適切な解決策には、シングルトンの代わりに、各ジョブの実行に適用できるスコープがあるようです。Request スコープに似ていますが、この別のシナリオです。
Custom Scopesのドキュメントを読みましたが、特定の依存関係が特定のスコープのインスタンスを guice からリクエストする方法をどのように知るかについては明確ではありません。
例:
public class MyJob {
/* Knows its "run id", which could be used for the scoping mechanism */
@Inject private Dependency dep;
public void run() { ... }
}
public class Dependency {
/* Technically does not know the "run id" from the job */
@Inject @Named("jobRunScope") private InnerDependency innerDep;
}
ご指導ありがとうございます。