[Seasar-user:11577] Re: カスタマイザの設定順序について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 11月 9日 (金) 21:00:10 JST


小林 (koichik) です.

Date:    Fri, 9 Nov 2007 20:22:15 +0900
From:    <[E-MAIL ADDRESS DELETED]>
To:       <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:11575] カスタマイザの設定順序について

> cusomizer.diconにカスタマイズを定義する際に、
> 定義の順序は処理に関係するのでしょうか?

はい.
特に AspectCustomizer の記述順は,dicon
ファイルにおける <aspect> 要素の記述順と同様,
先に記述したアスペクトが先に適用されます.

> 例えば、
> 	<component name="pageCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
> 		<initMethod name="addCustomizer">
> 			<arg>defaultCustomizer</arg>
> 		</initMethod>
> 		<initMethod name="addCustomizer">
> 			<arg>transactionAspectCustomizer</arg>
> 		</initMethod>
> 		<initMethod name="addCustomizer">
> 			<arg>loggingAspectCustomizer</arg>
> 		</initMethod>
> 		<initMethod name="addCustomizer">
> 			<arg>throwsAspectCustomizer</arg>
> 		</initMethod>
> 	</component>
> このように、throwsAspectCustomizerがtransactionAspectCustomizerより
> 下に定義された場合、transactionAspectCustomizerの中で、
> 発生した例外に関する例外処理が出来ないのでしょうか?

できません.
上記の順で記述した場合,大雑把には

transactionAspect {
  loggingAspect {
    throwsAspect {
      page
    }
  }
}

のようなイメージになります.
transactionAspect で発生した例外をその内側の
throwsAspect で捕まえることは出来ません.
そうしたいなら,throwsAspect を
transactionAspect よりも先に記述する必要が
あります.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内