5

JAX-RS 2.0の1つの目標は、CDIを整数化し、古いもの@Contextを一般的な@Injectインジェクションに置き換えることでした。しかし、私がJSR 339を見ると、これは言及されていません。では、実際にはCDI統合とは何ですか?Google Guiceの代わりにCDIでJAX-RSを使用する利点はありますか?

4

1 に答える 1

4

@ContextJAX-RS2.0でインジェクションを行う公式の方法です。ただし、仕様には、実装が(JAX-RS 2.0 EDR 3のセクション10.2.5から)@Inject一緒に使用できると記載されています。@Context

@Inject実装では、JAX-RS注釈付きフィールドまたはプロパティの使用またはインジェクションのトリガーを要求してはなりません@Resource(MUSTNOT)。実装はそのような使用法をサポートするかもしれませんが、非移植性についてユーザーに警告するべきです(SHOULD)。

したがって、JAX-RS 2.0のすべての実装がをサポートするかどうかは定かではなく、JAX-RS2.0の実装@Injectを変更したい場合は非互換性が生じる可能性があります。

少し調べてみたところ、Jersey2.0@Injectは少なくともサポートされたようです。

@Inject代わりに使用することの利点は、JAX-RSWebサービスにある@Contextすべて@Injectの非JAX-RSリソースとの一貫性が高いことだと思います。

于 2012-09-06T22:21:00.377 に答える