使用依赖注入来播放框架PathBindable

Mir*_*ker 7 dependency-injection scala playframework playframework-2.0 playframework-2.5

我正在将Scala Play应用程序迁移到2.5,并且我正在将我的组件移动到依赖注入.还有一个地方我不知道如何去做.我在随播对象中定义了一个PathBindable隐式转换:

object Task {
  implicit def pathBindable(implicit stringBinder: PathBindable[String]) =
    new PathBindable[Task] {
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

PathBindable的实现需要从存储库中查找对象,但我还没有找到一种依赖注入存储库的方法.作为一种解决方法,我正在使用现已弃用的Play对象:

val tasks = Play.application(Play.current).injector.instanceOf[TasksRepository]
Run Code Online (Sandbox Code Playgroud)

任何想法如何妥善解决?

Mir*_*ker 3

根据 Lightbend 工程师 Greg Methvin 的说法,PathBindables 应该只依赖于路径中的状态。原因是代码在 IO 线程上运行,因此应该很快且不会阻塞。