55

javax.injectアノテーションがcom.google.injectの直接の代替として機能できるというのは本当ですか?

そのため、現在のすべてのguice / ginアノテーションをjavax.injectのアノテーションに置き換えた場合、アプリは正常にコンパイルおよび実行されますか?

まず、javax.injectは、google.injectがカバーするすべてのベースをカバーしていますか?

4

3 に答える 3

54

はい、問題なく動作します。実際、guiceの作者(Bob Lee)は、仕様の仕様リーダーですjavax.inject

javax.inject.Injectには属性がないoptionalため、オプションの依存関係が必要な場合は、guiceアノテーションを使用する必要があります。

于 2011-10-20T13:57:44.560 に答える
13

実際、私はjavax.injectへの切り替えを控えることを選択しました。これは、Guiceが提供するもの(私が使用しているもの)と比較して、仕様が非常に最小限であることがわかったためです。

  • @Optional@Bozhoが述べたように
  • @ImplementedByこれは、明示的なバインディングの数を減らしたい場合(コードを明確にするため)や、必要に応じてデフォルトの@ImplementedByバインディングを簡単にオーバーライドできるようにしたい場合(統合テストなど)に非常に便利です。

おそらく他にもありますが、私にとってこれら2つはすでにショートッパーです。

于 2011-10-21T15:47:51.717 に答える
7

GuiceのサイトのJSR-330統合を参照してください。

于 2011-10-23T11:02:18.530 に答える