47.4. Apache CXF エクステンションの使用
概要 リンクのコピーリンクがクリップボードにコピーされました!
Apache CXF では、標準の JAX-WS インジェクションメカニズムへのエクステンションを提供しており、開発者が一連のインジェクションアノテーションを単一のアノテーションで置き換えることができます。アノテーションを使用して抽出されたデータのフィールドを含む Bean に、単一のアノテーションが配置されます。たとえば、リソースメソッドに id、type、および size という 3 つのクエリーパラメーターが含まれることが想定される場合、単一の @QueryParam アノテーションを使用して、対応するフィールドを持つ Bean にすべてのパラメーターを注入できます。
代わりに @BeanParam アノテーションの使用を検討してください (JAX-RS 2.0 以降で利用可能)。標準的な @BeanParam のアプローチはプロプライエタリー Apache CXF エクステンションよりも柔軟性が高いため、推奨される代替手段となります。詳細は、「Java Bean へのパラメーターの挿入」 を参照してください。
サポートされるインジェクションアノテーション リンクのコピーリンクがクリップボードにコピーされました!
このエクステンションは、すべてのインジェクションパラメーターをサポートする訳ではありません。以下のみをサポートします。
-
@PathParam -
@QueryParam -
@MatrixParam -
@FormParam
構文 リンクのコピーリンクがクリップボードにコピーされました!
アノテーションが Bean へのシリアルインジェクションを使用することを指定するには、以下の 2 点を実行する必要があります。
-
アノテーションのパラメーターを空の文字列として指定します。たとえば、
@PathParam("")は、URI テンプレート変数のシーケンスを Bean にシリアライズするように指定します。 - アノテーション付きのパラメーターが、挿入される値と一致するフィールドを含む Bean であることを確認します。
例 リンクのコピーリンクがクリップボードにコピーされました!
例47.7「クエリーパラメーターの Bean へのインジェクト」 は、多数のクエリーパラメーターを Bean に挿入する例を示しています。リソースメソッドでは、リクエスト URI に type および id の 2 つのクエリーパラメーターが含まれることが想定されています。これらの値は、Monster Bean の対応するフィールドに注入されます。
例47.7 クエリーパラメーターの Bean へのインジェクト