私はオンラインとSOの両方で多くの投稿を読んだことがありますが、私はまだEJBを注入するためにどのアノテーションを使うべきか明確ではありません。EJBの注入に使用するメソッドはどれですか?
誰もがEJBを注入するためのどのアノテーションを使用する際に案内し(そしておそらく長所と短所)してくださいすることができ:
@Inject1)@EJB
2)@Resource
3)
これは基本的な質問かもしれませんが、私は回答を探しましたが、これについてはまだ明確ではありません。
私はオンラインとSOの両方で多くの投稿を読んだことがありますが、私はまだEJBを注入するためにどのアノテーションを使うべきか明確ではありません。EJBの注入に使用するメソッドはどれですか?
誰もがEJBを注入するためのどのアノテーションを使用する際に案内し(そしておそらく長所と短所)してくださいすることができ:
@Inject1)@EJB
2)@Resource
3)
これは基本的な質問かもしれませんが、私は回答を探しましたが、これについてはまだ明確ではありません。
@Resource
を使用してEJBをインジェクトすることは、どこにも見たことがありません。一部のサーバーでが動作する可能性がありますが、移植性は低いです。
@EJB
対@Inject
の質問はより複雑です。
CDIと@Inject
がJava EE 6仕様に追加されました。そこには@Eject EJBをCDI Beanに入れることは可能でしたが、あまりにも多くの場所には置くことはできませんでした。
Java EE 7仕様では、実質的に、ほとんどすべての場所で@Inject
または@EJB
を互換的に使用できるポイントまで統一されています。基本的には、EJB仕様自体、サーブレット仕様、JAX-WS、JAX-RSなどのすべての「サブ」仕様は、と同様に@Inject
の使用をサポートするように更新する必要がありました。ただし、@EJB注釈で使用可能な属性を指定する必要がある場合、これらは@Injectでは使用できません。
したがって、Java EE 7準拠の環境で実行していて、@EJB属性が必要ない場合は@Inject
を自由に使用してください。それ以外の場合は@EJB
を使用してください。
@ResourceはSpringでも使用されています。私は、EJBの代わりにPOJOを使用することに決めた場合でも、それが当てはまると思います。 – duffymo