12.9.4. インターセプター優先度ファミリー
12.9.4.1. インターセプター優先度ファミリーについて
概要
インターセプターは呼び出される順番に敏感なことがあります。RESTEasy はインターセプターをファミリーにグループ化し、順番付けを簡易化します。この参照トピックではビルトインのインターセプター優先度ファミリーと各ファミリーに関連付けられるインターセプターについて取り上げます。
事前定義されたファミリーは 5 つあります。これらのファミリーは次の順序で呼び出されます。
- SECURITY
- SECURITY インターセプターは通常 PreProcessInterceptors です。呼び出しが承認されるまでの時間を最低限にするためこのインターセプターが最初に呼び出されます。
- HEADER_DECORATOR
- HEADER_DECORATOR インターセプターは応答または送信要求へヘッダーを追加します。追加されたヘッダーが他のインターセプターファミリーの挙動に影響することがあるため、SECURITY インターセプターの後に呼び出されます。
- ENCODER
- ENCODER インターセプターは OutputStream を変更します。GZIP インターセプターは GZIPOutputStream を作成し、圧縮するため真の OutputStream をラッピングします。
- REDIRECT
- REDIRECT インターセプターは要求のルートを変更し、JAX-RS メソッドを完全に迂回することがあるため、通常 PreProcessInterceptors で使用されます。
- DECODER
- DECODER インターセプターは inputStream をラッピングします。例えば、GZIP インターセプターデコーダーは GzipInputStream インスタンスの InputStream をラッピングします。
優先度ファミリーに関連付けられていないインターセプターは最後に呼び出されます。インターセプターに優先度ファミリーを割り当てるには、「RESTEasy 定義済みアノテーション」 の通り @Precedence アノテーションを使用します。