Scala (游戏2.4)特质中的依赖注入?
在游戏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
谢谢。我在这里讨论使用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”时: