Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)

[目次][用語][索引][前へ][次へ]

2.15.4 インターセプタの実行順序

インターセプタの実行順序は,デフォルトでは次の規則に従って決定されます。

なお,ここで示したデフォルトのインターセプタの実行順序は,次の方法で変更できます。

これらの規則と,DDによるアノテーションの上書きの規則を組み合わせた実行順序を(1)〜(4)で説明します。DDによるアノテーションの上書きについては,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「12.6.2 DDによるアノテーションの上書き」を参照してください。

<この項の構成>
(1) デフォルトインターセプタ,およびクラスレベルインターセプタの呼び出し抑止の定義が指定されている場合
(2) デフォルトインターセプタの呼び出し抑止の定義が指定されている場合
(3) クラスレベルインターセプタの呼び出し抑止の定義が指定されている場合
(4) 上位レベルインターセプタの呼び出し抑止の定義が指定されていない場合

(1) デフォルトインターセプタ,およびクラスレベルインターセプタの呼び出し抑止の定義が指定されている場合

デフォルトインターセプタ,およびクラスレベルインターセプタの呼び出し抑止の定義が指定されている場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<interceptor-order>の使用」に○×で示した組み合わせの場合の実行順序を,「インターセプタの実行順序」のDDまたはアノテーションの表記の前にある数字で示しています。

表2-51 インターセプタの実行順序(デフォルトインターセプタ,およびクラスレベルインターセプタの呼び出し抑止の定義が指定されている場合)

項番 <interceptor-order>の使用 インターセプタの実行順序
デフォルト クラスレベル メソッドレベル デフォルト クラスレベル メソッドレベル インターセプタメソッド
1 1. DD 2. アノテーション
2 × 1. アノテーション
2. DD
3. アノテーション
3 × 1. DD 2. アノテーション
4 × × 1. アノテーション
2. DD
3. アノテーション
5 × 1. DD 2. アノテーション
6 × × 1. アノテーション
2. DD
3. アノテーション
7 × × 1. DD 2. アノテーション
8 × × × 1. アノテーション
2. DD
3. アノテーション

(凡例)
デフォルト:デフォルトインターセプタ
クラスレベル:クラスレベルインターセプタ
メソッドレベル:メソッドレベルインターセプタ
インターセプタメソッド:Beanクラスに指定されたインターセプタメソッド
○:<interceptor-order>タグを使用して実行順序を指定している。
×:<interceptor-order>タグを使用して実行順序を指定していない。
−:実行されない。
DD:DDで指定されたインターセプタが実行される。
アノテーション:アノテーションで指定されたインターセプタが実行される。

(2) デフォルトインターセプタの呼び出し抑止の定義が指定されている場合

デフォルトインターセプタの呼び出し抑止の定義が指定されている場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<interceptor-order>の使用」に○×で示した組み合わせの場合の実行順序を,「インターセプタの実行順序」のDDまたはアノテーションの表記の前にある数字で示しています。

表2-52 インターセプタの実行順序(デフォルトインターセプタの呼び出し抑止の定義が指定されている場合)

項番 <interceptor-order>の使用 インターセプタの実行順序
デフォルト クラスレベル メソッドレベル デフォルト クラスレベル メソッドレベル インターセプタメソッド
1 1. DD 2. アノテーション
2 × 1. DD 2. アノテーション
3. DD
4. アノテーション
3 × 1. DD 2. アノテーション
4 × × 1. アノテーション
2. DD
3. アノテーション
4. DD
5. アノテーション
5 × 1. DD 2. アノテーション
6 × × 1. DD 2. アノテーション
3. DD
4. アノテーション
7 × × 1. DD 2. アノテーション
8 × × × 1. アノテーション
2. DD
3. アノテーション
4. DD
5. アノテーション

(凡例)
デフォルト:デフォルトインターセプタ
クラスレベル:クラスレベルインターセプタ
メソッドレベル:メソッドレベルインターセプタ
インターセプタメソッド:Beanクラスに指定されたインターセプタメソッド
○:<interceptor-order>タグを使用して実行順序を指定している。
×:<interceptor-order>タグを使用して実行順序を指定していない。
−:実行されない。
DD:DDで指定されたインターセプタが実行される。
アノテーション:アノテーションで指定されたインターセプタが実行される。

(3) クラスレベルインターセプタの呼び出し抑止の定義が指定されている場合

クラスレベルインターセプタの呼び出し抑止の定義が指定されている場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<interceptor-order>の使用」に○×で示した組み合わせの場合の実行順序を,「インターセプタの実行順序」のDDまたはアノテーションの表記の前にある数字で示しています。

表2-53 インターセプタの実行順序(クラスレベルインターセプタの呼び出し抑止の定義が指定されている場合)

項番 <interceptor-order>の使用 インターセプタの実行順序
デフォルト クラスレベル メソッドレベル デフォルト クラスレベル メソッドレベル インターセプタメソッド
1 1. DD 2. アノテーション
2 × 1. DD 2. アノテーション
3. DD
4. アノテーション
3 × 1. DD 2. アノテーション
4 × × 1. DD 2. アノテーション
3. DD
4. アノテーション
5 × 1. DD 2. アノテーション
6 × × 1. DD 2. アノテーション
3. DD
4. アノテーション
7 × × 1. DD 2. アノテーション
8 × × × 1. DD 2. アノテーション
3. DD
4. アノテーション

(凡例)
デフォルト:デフォルトインターセプタ
クラスレベル:クラスレベルインターセプタ
メソッドレベル:メソッドレベルインターセプタ
インターセプタメソッド:Beanクラスに指定されたインターセプタメソッド
○:<interceptor-order>タグを使用して実行順序を指定している。
×:<interceptor-order>タグを使用して実行順序を指定していない。
−:実行されない。
DD:DDで指定されたインターセプタが実行される。
アノテーション:アノテーションで指定されたインターセプタが実行される。

(4) 上位レベルインターセプタの呼び出し抑止の定義が指定されていない場合

上位レベルインターセプタの呼び出し抑止の定義が指定されていない場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<interceptor-order>の使用」に○×で示した組み合わせの場合の実行順序を,「インターセプタの実行順序」のDDまたはアノテーションの表記の前にある数字で示しています。

表2-54 インターセプタの実行順序(上位レベルインターセプタの呼び出し抑止の定義が指定されていない場合)

項番 <interceptor-order>の使用 インターセプタの実行順序
デフォルト クラスレベル メソッドレベル デフォルト クラスレベル メソッドレベル インターセプタメソッド
1 1. DD 2. アノテーション
2 × 1. DD 2. アノテーション
3. DD
4. アノテーション
3 × 1. DD 2. アノテーション
4 × × 1. DD 2. アノテーション
3. DD
4. アノテーション
5. DD
6. アノテーション
5 × 1. DD 2. アノテーション
6 × × 1. DD 2. アノテーション
3. DD
4. アノテーション
7 × × 1. DD 2. アノテーション
8 × × × 1. DD 2. アノテーション
3. DD
4. アノテーション
5. DD
6. アノテーション

(凡例)
デフォルト:デフォルトインターセプタ
クラスレベル:クラスレベルインターセプタ
メソッドレベル:メソッドレベルインターセプタ
インターセプタメソッド:Beanクラスに指定されたインターセプタメソッド
○:<interceptor-order>タグを使用して実行順序を指定している。
×:<interceptor-order>タグを使用して実行順序を指定していない。
−:実行されない。
DD:DDで指定されたインターセプタが実行される。
アノテーション:アノテーションで指定されたインターセプタが実行される。