我的应用程序构建在 Guice 之上并运行计划作业 (cron4j),这些作业显示了一些与固有的 @Singleton 实例相关的问题。
我的问题的适当解决方案似乎具有适用于每个作业运行的范围,而不是单例。它类似于请求范围,但在这种不同的场景中。
我已经阅读了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;
}
我很感激任何指导。