注入scala对象

Inject in scala object

我正在使用 Play 框架 2.5 并尝试将 WSClient 注入到我的控制器中使用的 scala 对象中。

import play.api.libs.concurrent.Execution.Implicits.defaultContext

    object MyObject {

        @Inject
        var ws: WSClient = null

        def doSomething() = { // use wsclient }

    }

我在多个控制器中使用 MyObject,当调用 doSomething() 时 wsclient 为空。

您应该将 MyObject 定义为 class 并向其注入 wsclient:

class MyObject @Inject()(ws: WSClient) {
    def doSomething() = { /* use wsclient */ }
}