17.1 リソースクラス
リソースクラスのリソースメソッド,サブリソースメソッド,およびサブリソースロケータの違い,ならびにルートリソースクラスとサブリソースクラスの違いについて説明します。
リソースクラスのリソースメソッド,サブリソースメソッド,およびサブリソースロケータは,Pathアノテーション,および要求メソッド識別子の有無によって定義されます。それぞれの定義を次に示します。
項番 |
メソッドまたはロケータ |
Pathアノテーション |
要求メソッド識別子 |
---|---|---|---|
1 |
リソースメソッド |
× |
○ |
2 |
サブリソースメソッド |
○ |
○ |
3 |
サブリソースロケータ |
○ |
× |
ルートリソースクラスのインスタンスは,JAX-RSエンジンによって生成されます。このとき,コンストラクタのパラメタ,フィールド,およびbeanプロパティにはJAX-RS仕様に従ってインジェクトされます。
一方,サブリソースクラスのインスタンスは,JAX-RSエンジンによって生成されません。サブリソースクラスは,対応するサブリソースロケータでインスタンス化する必要があります。このため,コンストラクタのパラメタ,フィールド,およびbeanプロパティの初期化は,サブリソースロケータ,またはサブリソースクラスで行う必要があります。