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