ファクトリの使用から依存性注入フレームワークの使用に変更したいサービスがいくつかあります。
Java 6+では、サードパーティのライブラリを使用せずにこれを達成できる「標準的な」方法はありますか? CDI (Contexts and Dependency Injection) はこのシナリオに適用できますか?
例は素晴らしいでしょう!シンプルに「見える」Guice を使い始めましたが、現在問題が発生しているため、他のオプションを検討しています。
ファクトリの使用から依存性注入フレームワークの使用に変更したいサービスがいくつかあります。
Java 6+では、サードパーティのライブラリを使用せずにこれを達成できる「標準的な」方法はありますか? CDI (Contexts and Dependency Injection) はこのシナリオに適用できますか?
例は素晴らしいでしょう!シンプルに「見える」Guice を使い始めましたが、現在問題が発生しているため、他のオプションを検討しています。
DI と CDI は、Java 標準 JSR299 と JSR330 で定義されています。これらの標準をサポートする DI フレームワークであれば何でも構いません。CDI の場合、これは Weld-SE になります。DI の場合は、guice に固執することができ、うまく機能しました。
あなたの質問はちょっと広いです。「Java 6+」と言うときは、JavaEE 6 を意味することを願っています。Java SE 6 は、サードパーティのライブラリなしではネイティブ DI を提供しないためです。
Java EE 空間内では、@ManagedBean
アノテーションはすべての DI ニーズの標準として機能するはずです。@ManagedBean
(fromで注釈が付けられたものjavax.annotation.ManagedBean
はすべて、注入の適格なターゲットであり、他の Bean に注入することもできます。
たとえば、JAX-RS クラスは、それ自体ではインジェクションの適格なターゲットではありません。それに追加@ManagedBean
すると、EJB、リソース、およびその他のコンテキストグッズの注入に適格になります