私の知る限り、Daggerはコードを生成しますが、GuiceとSpringはランタイム処理に依存するため、Daggerはより高速に動作しますが、プログラマー側でより多くの作業が必要です。パフォーマンスEdgeにより、モバイル(Android)開発に適しています。
ただし、GuiceとSpringを残した場合、後者には多くの統合があります。 Spring Frameworkを使用できる場合、Guiceの開発/使用のポイントは何ですか(基本的に同じことをしますが、データベースアクセスが簡単になります)。
Googleは、Spring Frameworkを使用する(おそらく貢献する)のではなく、独自のDIツールを作成して車輪を再発明しようとしないのですか?
DIツールの選択をガイドする決定ツリーを探しています。
DaggerはGuiceの後に、Squareに移動したGuiceの作成者( "Crazy Bob" Lee )によって作成されたことを認識することが重要です。
javax.inject
注釈 October 2009 、Google(Bob Lee)、Spring、およびその他の業界プレーヤーからの大量の入力。その意味で、Guiceの継続的なキュレーションは、Daggerのどのバージョンよりも完全に先行する、長期にわたって広く消費されているソフトウェアパッケージのメンテナンスほど「車輪の再発明」ではありません。 DaggerはGuiceの精神的な後継者であると考えるかもしれませんが、Guiceの機能の最適化されたサブセットのみを提供するものです。
上記の違いをリストして修正するには:
さらに、使用するフレームワーク間でメンテナンス/非推奨のパターンとポリシーに注意してください。チームの知識と経験、リフレクションまたはランタイム構成の必要性、および統合とランタイムパフォーマンスの必要性に基づいて、上記のいずれかが目立つでしょう。そうは言っても、他にもフレームワークがありますので、上記の新しいオプションとフォークにも目を光らせてください。