3

Play Framework 2.1 で Guice/Spring DI を使用する方法に関する有用な情報を見つけるために、Google をくまなく探しています。

私がやりたいことは、いくつかのサービスをいくつかの DAO に注入すること、またはその逆です。

これについて明確にする必要があります - play 2.1 では、DI のルート ファイル内で @ 注釈を使用する必要がありますか?

ここでこのガイドを見てきました - https://github.com/playframework/Play20/blob/master/documentation/manual/javaGuide/main/inject/JavaInjection.md

アプリでグローバル クラスを作成し、Build.scala で GUICE 依存関係を追加する次の手順を適用しましたが、注入されたオブジェクトを呼び出すと、null ポインター例外が発生し続けます。

Guice を使用して Play 2.1 で DI を動作させることができた人はいますか? インターネット上で例を見てきましたが、それらはすべてコントローラー内で DI を使用しているようです。

4

4 に答える 4

2

私はケーキパターンと独自のバージョンのグローバルオーバーライドを使用していますgetControllerInstance

https://github.com/benjaminparker/play-inject

乾杯

ベン

于 2013-04-08T21:37:04.647 に答える
2

申し訳ありませんが、これは遅い応答ですが、これが私たちの例です

https://github.com/typesafehub/play-guice

于 2013-06-15T08:50:26.747 に答える
1

Guice とは異なる DI のアプローチを試してみましたか? また、Guice または Spring を使用してプロジェクトを実装しようとしましたが、次のような特性を実装するオブジェクトに依存関係を登録することになりました。

trait Registry {
   def userDao: UserDao
...

}

object Registry {
  var current: Registry = _
}

object Environnment {
 object Dev extends Registry {
  val userDao = ...
//implement your environment for develpment here
}
 object Test extends Registry {
  val userDao = ...
//implement your ennviroment for tests here e.g. with mock objects
}
}

あなたに合うかもしれない別の良いアプローチは、ケーキパターンです(グーグルで検索してください)。

于 2013-03-28T13:45:25.597 に答える