2017-05-10 5 views
0

私はオンラインとSOの両方で多くの投稿を読んだことがありますが、私はまだEJBを注入するためにどのアノテーションを使うべきか明確ではありません。EJBの注入に使用するメソッドはどれですか?

誰もがEJBを注入するためのどのアノテーションを使用する際に案内し(そしておそらく長所と短所)してくださいすることができ:

1)@EJB
2)@Resource
3)

@Inject

これは基本的な質問かもしれませんが、私は回答を探しましたが、これについてはまだ明確ではありません。

+0

@ResourceはSpringでも使用されています。私は、EJBの代わりにPOJOを使用することに決めた場合でも、それが当てはまると思います。 – duffymo

答えて

4

@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を使用してください。

関連する問題