javax.injectアノテーションがcom.google.injectの直接の代替として機能できるというのは本当ですか?
そのため、現在のすべてのguice / ginアノテーションをjavax.injectのアノテーションに置き換えた場合、アプリは正常にコンパイルおよび実行されますか?
まず、javax.injectは、google.injectがカバーするすべてのベースをカバーしていますか?
javax.injectアノテーションがcom.google.injectの直接の代替として機能できるというのは本当ですか?
そのため、現在のすべてのguice / ginアノテーションをjavax.injectのアノテーションに置き換えた場合、アプリは正常にコンパイルおよび実行されますか?
まず、javax.injectは、google.injectがカバーするすべてのベースをカバーしていますか?
はい、問題なく動作します。実際、guiceの作者(Bob Lee)は、仕様の仕様リーダーですjavax.inject
。
javax.inject.Inject
には属性がないoptional
ため、オプションの依存関係が必要な場合は、guiceアノテーションを使用する必要があります。
実際、私はjavax.injectへの切り替えを控えることを選択しました。これは、Guiceが提供するもの(私が使用しているもの)と比較して、仕様が非常に最小限であることがわかったためです。
@Optional
@Bozhoが述べたように@ImplementedBy
これは、明示的なバインディングの数を減らしたい場合(コードを明確にするため)や、必要に応じてデフォルトの@ImplementedBy
バインディングを簡単にオーバーライドできるようにしたい場合(統合テストなど)に非常に便利です。おそらく他にもありますが、私にとってこれら2つはすでにショートッパーです。
GuiceのサイトのJSR-330統合を参照してください。