2016-05-17 161 views
4

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

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

    object MyObject { 

     @Inject 
     var ws: WSClient = null 

     def doSomething() = { // use wsclient } 

    } 

我在几个控制器中使用MyObject,并在调用doSomething()时wsclient为null。

回答

1

可以定义为MyObject类,后来它注入到其他类

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

class OtherClass @Inject()(mo: MyObject) { 
    mo.doSomething 
} 
+4

这是不可能的对象?我必须定义一个班级? – jerome

+0

根据我的知识注入对象只有在播放模块启动时才可能http://stackoverflow.com/questions/13791815/can-guice-inject-scala-objects – mgosk