2016-05-17 3 views
4

私はPlayフレームワーク2.5を使用していて、コントローラで使用されているスカラオブジェクトにWSClientを挿入しようとしています。スカラオブジェクトに挿入する

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

私の知識によれば、オブジェクトへの注入は、Playモジュールの初期化中にのみ可能です。http://stackoverflow.com/questions/13791815/can-guice-inject-scala-objects – mgosk