Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inject in scala object

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.

like image 382
jerome Avatar asked May 17 '16 11:05

jerome


1 Answers

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

class MyObject @Inject()(ws: WSClient) {
    def doSomething() = { /* use wsclient */ }
}
like image 87
mgosk Avatar answered Oct 18 '22 20:10

mgosk