Scala (游戏2.4)特质中的依赖注入?

Scala (游戏2.4)特质中的依赖注入?,scala,playframework,dependency-injection,guice,Scala,Playframework,Dependency Injection,Guice,在游戏2.4中,有可能在一个特征中使用依赖注入吗 有什么例子吗 谢谢。我在这里讨论使用Guice的运行时DI,因为它是Play使用的默认方法。其他DI方法或框架在此可能有所不同 不可能将依赖项注入到特性中,因为特性是不可实例化的。trait没有定义依赖项的构造函数 在游戏中,只要特征在范围内,你就可以直接使用注射器。但这在生产代码中并不被认为是好的实践。在测试代码中,这将是一个选项 class MySpec extends PlaySpecification { "My test" shou

在游戏2.4中,有可能在一个特征中使用依赖注入吗

有什么例子吗


谢谢。

我在这里讨论使用Guice的运行时DI,因为它是Play使用的默认方法。其他DI方法或框架在此可能有所不同

不可能将依赖项注入到特性中,因为特性是不可实例化的。trait没有定义依赖项的构造函数

在游戏中,只要特征在范围内,你就可以直接使用注射器。但这在生产代码中并不被认为是好的实践。在测试代码中,这将是一个选项

class MySpec extends PlaySpecification {
  "My test" should {
    "Use the injector" in new WithApplication extends Context {
      val messages = Messages(Lang("en-US"), messagesApi)
    } 
  }

  trait Context extends Scope {
    self: WithApplication =>

    val messagesApi = app.injector.instanceOf[MessagesApi]
  }
}
因此,在生产代码中,推荐的好方法是什么,例如,当您需要以“安全”特性使用“AuthService”时: