Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)
インターセプタの実行順序は,デフォルトでは次の規則に従って決定されます。
なお,ここで示したデフォルトのインターセプタの実行順序は,次の方法で変更できます。
これらの規則と,DDによるアノテーションの上書きの規則を組み合わせた実行順序を(1)〜(4)で説明します。DDによるアノテーションの上書きについては,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「12.6.2 DDによるアノテーションの上書き」を参照してください。
デフォルトインターセプタ,およびクラスレベルインターセプタの呼び出し抑止の定義が指定されている場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<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. アノテーション |
デフォルトインターセプタの呼び出し抑止の定義が指定されている場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<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. アノテーション |
クラスレベルインターセプタの呼び出し抑止の定義が指定されている場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<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. アノテーション |
上位レベルインターセプタの呼び出し抑止の定義が指定されていない場合の,インターセプタの実行順序を次の表に示します。この表では,各項番の「<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. アノテーション |
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.