47.4. Apache CXF エクステンションの使用


概要

Apache CXF では、標準の JAX-WS インジェクションメカニズムへのエクステンションを提供しており、開発者が一連のインジェクションアノテーションを単一のアノテーションで置き換えることができます。アノテーションを使用して抽出されたデータのフィールドを含む Bean に、単一のアノテーションが配置されます。たとえば、リソースメソッドに idtype、および size という 3 つのクエリーパラメーターが含まれることが想定される場合、単一の @QueryParam アノテーションを使用して、対応するフィールドを持つ Bean にすべてのパラメーターを注入できます。

注記

代わりに @BeanParam アノテーションの使用を検討してください (JAX-RS 2.0 以降で利用可能)。標準的な @BeanParam のアプローチはプロプライエタリー Apache CXF エクステンションよりも柔軟性が高いため、推奨される代替手段となります。詳細は、「Java Bean へのパラメーターの挿入」 を参照してください。

サポートされるインジェクションアノテーション

このエクステンションは、すべてのインジェクションパラメーターをサポートする訳ではありません。以下のみをサポートします。

  • @PathParam
  • @QueryParam
  • @MatrixParam
  • @FormParam

構文

アノテーションが Bean へのシリアルインジェクションを使用することを指定するには、以下の 2 点を実行する必要があります。

  1. アノテーションのパラメーターを空の文字列として指定します。たとえば、@PathParam("") は、URI テンプレート変数のシーケンスを Bean にシリアライズするように指定します。
  2. アノテーション付きのパラメーターが、挿入される値と一致するフィールドを含む Bean であることを確認します。

例47.7「クエリーパラメーターの Bean へのインジェクト」 は、多数のクエリーパラメーターを Bean に挿入する例を示しています。リソースメソッドでは、リクエスト URI に type および id の 2 つのクエリーパラメーターが含まれることが想定されています。これらの値は、Monster Bean の対応するフィールドに注入されます。

例47.7 クエリーパラメーターの Bean へのインジェクト

import javax.ws.rs.QueryParam;
import javax.ws.rs.PathParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
...

@Path("/monstersforhire/")
public class MonsterService
{
  ...
  @POST
  public void updateMonster(@QueryParam("") Monster bean)
  {
    ...
  }
  ...
}

public class Monster
{
  String type;
  String id;

  ...
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.