com.google.injectをjavax.injectに置き換えます
-
27-10-2019 - |
質問
javax.injectアノテーションがcom.google.injectの直接的な置換として機能できるのは本当ですか?
そのため、現在のGUICE/GINアノテーションをすべてjavax.Injectのアノテーションに置き換えた場合、アプリはコンパイルして正常に実行されますか?
まず、javax.injectは、Google.Injectカバーのすべてのベースをカバーしていますか?
解決
はい、それは正常に動作します。実際、Guice(Bob Lee)の著者は、 javax.inject
仕様。
javax.inject.Inject
ありません optional
属性、そのため、オプションの依存関係が必要な場合は、Guice Annotationを使用する必要があります。
他のヒント
実際、Guiceが提供するもの(私が使用している)と比較して、スペックがはるかにミニマルなものだと思うので、Javax.Injectに切り替えることを控えることを選択しました。
@Optional
@bozhoが述べたように@ImplementedBy
これは、明示的なバインディングの数(コードの明確さのため)を減らしたい場合、およびデフォルトを簡単にオーバーライドできるようにする場合に非常に便利です@ImplementedBy
必要な場合はバインディング(統合テストなど)。
おそらく他の人がいますが、私にとってはこれら2つはすでにショーストッパーです。
質問はかなり古いですが、... Fyi:自動的にできます Apiwaveでそれを確認してください.
過去の変更で学ぶことで、私たちはそれを見ることができます com.google.inject.Inject
置き換えることができます javax.inject.Inject
.
所属していません StackOverflow