Inject in scala object

时间:2016-05-17 11:15:04

标签: scala playframework guice

I'm using Play framework 2.5 and try to inject WSClient in a scala object used in my controllers.

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

    object MyObject {

        @Inject
        var ws: WSClient = null

        def doSomething() = { // use wsclient }

    }

I use MyObject in several controllers and when calling doSomething() wsclient is null.

1 个答案:

答案 0 :(得分:3)

You should define MyObject as class and inject wsclient to it:

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