【发布时间】:2020-02-03 12:36:24
【问题描述】:
我有一些旧代码应该允许我们首先安排 Quartz 任务(使数据库持久化),然后由 Quartz 执行。问题是工作代码看起来像:
class MyJob extends Job {
def execute(context: JobExecutionContext) {
ServiceA.m() <-- Singleton call
...
ServiceB.n() <-- Singleton call
}
}
我试图重构我们的代码,使其对控制反转更友好,所以我想让ServiceA 和ServiceB 成为非单例。但是我看不到.. Quartz Job 需要有一个 0-args 构造函数,所以我不能以这种方式传递我的依赖项(这本来是理想的)。
任何我不知道的解决方法?我想避免使用 IoC 框架,我很满意在 Scala 中将参数作为隐式传递。
谢谢
【问题讨论】: