[Seasar-user:8080] Re: [Seasar]Seasar2.4系でトランザクションを扱うための設定
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 6月 5日 (火) 17:30:14 JST
小林 (koichik) です.
Date: Tue, 05 Jun 2007 17:10:01 +0900
From: kondo <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:8078] Re: [Seasar]Seasar2.4系でトランザクションを扱うための設定
> <component name="〜〜Customizer"
> class="org.seasar.framework.container.customizer.CustomizerChain">
> <initMethod name="addCustomizer">
> <arg>{インターセプタ}</arg>
> </initMethod>
> </component>
{インターセプタ} のところはインターセプタではなく,
「カスタマイザ」です.
requiredTxCustomizer の実体は std-customizer.dicon に
定義されていて,
<component name="requiredTxCustomizer"
class="org.seasar.framework.container.customizer.AspectCustomizer">
<property name="interceptorName">"j2ee.requiredTx"</property>
</component>
となっています.
AspectCustomizer というのは AOP を適用するカスタマイザで,
interceptorName プロパティの値がインターセプタ名です.
ちなみに s2DaoCustomizer は
<component name="s2DaoCustomizer"
class="org.seasar.framework.container.customizer.AspectCustomizer">
<property name="interceptorName">"dao.interceptor"</property>
</component>
となっています.
> もうひとつだけ教えてください。この構文の場合、でpointcutを指定するには
> どのように記述すればよろしいのでしょうか?
AspectCustomizer クラスの pointcut プロパティで
指定します.
std-customizer.dicon に定義されている
標準コンポーネントにはポイントカットは指定されて
いないので,それらを使うことはできず,自前で
定義することになります.
<component name="logicCustomizer"
class="org.seasar.framework.container.customizer.CustomizerChain">
<initMethod name="addCustomizer">
<arg>
<component name="requiredTxCustomizer"
class="org.seasar.framework.container.customizer.AspectCustomizer">
<property name="interceptorName">"j2ee.requiredTx"</property>
<property name="pointcut">insert*,update*,delete*</property>
</component>
</initMethod>
</component>
となります.
個人的には照会系でもトランザクション境界を設定すべきだと
思いますが.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内