久しぶりにPlayframeworkを使ってみたら、DIを本格的に導入していて、慌ててDIってなんだ?と格闘しています。
PlayframeworkでInjectを利用する例が、ControllerでのInjectしか見当たらないのですが、
modelやその他クラスから直接Injectを利用する方法はないのでしょうか?
例えばSampleクラス内のexecメソッドでInjectされたserviceオブジェクトを参照したい場合、
現在以下のようにController経由で渡す方法しか分からないのですが、
execメソッド内で直接serviceオブジェクトを取得する方法はないものでしょうか?
scala
1 2class SampController @Inject()(service:Service) extends Controller{ 3 def index = Action{implict request => 4 #略 5 sample.exec(service) 6 ...略 7 } 8} 9 10class Sample{ 11 def exec(service:Service) = { 12 #略 serviceを使った何らかの処理 13 } 14}
これを以下の様な書き方にしたいです。
scala
1class SampController extends Controller{ 2 def index = Action{implict request => 3 #略 4 sample.exec() 5 ...略 6 } 7} 8 9class Sample{ 10 def exec = { 11 val service:Service = #なんらかの方法でInjectで取得する 12 #略 serviceを使った何らかの処理 13 } 14}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/29 15:05
2016/08/29 15:32