我正在将我的应用程序迁移到Play 2.5,我遇到以下问题:
import play.modules.reactivemongo.ReactiveMongoApi
trait Foo {
override def reactiveMongoApi: ReactiveMongoApi = current.injector.instanceOf[ReactiveMongoApi]
...
}
object Foo extends Foo
由于current
现已弃用,我想替换它。但是,我不能使用@Inject() (val reactiveMongoApi: ReactiveMongoApi)
因为我在特质中。
我该怎么办呢?
答案 0 :(得分:3)
您可以这样做:
import play.modules.reactivemongo.ReactiveMongoApi
trait Foo {
def reactiveMongoApi: ReactiveMongoApi
// other methods
}
@Singleton
class FooClass @Inject()(reactiveMongoApi: ReactiveMongoApi) extends Foo {
// other methods
}
注意FooClass
(reactiveMongoApi
)中的属性名称与特征Foo
中定义的方法的匹配方式。之后,您可以declare a module to provide the correct bindings。