コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

No. 3 AOPの適用の順番なり

ドキュメントベースでないのがあれだけど。
interceptorを定義した際に、どのような順番で適用されるのかをコードベースで確認してみた。
customizer.diconは以下のように定義

<component name="pageCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
 <initMethod name="addAspectCustomizer">
  <arg>"test01Interceptor"</arg>
  <arg>"do.*, initialize, prerender"</arg>
 </initMethod>
 <initMethod name="addAspectCustomizer">
  <arg>"test02Interceptor"</arg>
  <arg>"do.*, initialize, prerender"</arg>
 </initMethod>
 ・・・省略

test01とtest02のinterceptorを作成して実行。
ログをみると、

********** test01 start **********
********** test02 start **********
2008-01-06 12:21:34,465 [http-8080-Processor25] DEBUG org.seasar.extension.jta.TransactionImpl - トランザクションを開始しました。tx=[FormatId=4360, GlobalId=1199622094465/0, BranchId=]
2008-01-06 12:21:34,470 [http-8080-Processor25] DEBUG org.seasar.extension.jta.TransactionImpl - トランザクションをコミットしました。tx=[FormatId=4360, GlobalId=1199622094465/0, BranchId=]
********** test02 end **********
********** test01 end **********

普通に上から呼ばれる感じか。