[Seasar-user:9297] Re: Teeda で独自 Interceptor を作る際の留意点について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 7月 20日 (金) 16:00:09 JST


小林 (koichik) です.

Date:    Fri, 20 Jul 2007 15:31:18 +0900 (JST)
From:    [E-MAIL ADDRESS DELETED]
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:9295] Teeda で独自 Interceptor を作る際の留意点について

> 1.hoge.IntercepterにAbstractInterceptorを継承したクラスを作成

hoge.Interceptor はクラス名?
そうでなく,hoge.interceptor パッケージの
HogeLogManagerInterceptor クラスであれば,

> 2.app_aop.diconにコンポーネントを追加

これは不要です.
# hoge がルートパッケージの場合.

インターセプタも SMART deploy の対象なので
自動登録されます.

> 3.customizer.diconにコンポーネントとしてinterceptorCustomizerを追加して、2
> .でのコンポーネントを記述

インターセプタを Page クラスに適用するなら,
InterceptorCustomizer ではなく PageCustomizer を
定義します.
customizer.dicon には PageCustomizer のひな形が
コメントアウトされた状態で記述されていると思うので
それをベースにしてください.

Seasar2.4.15 からは

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

Seasar2.4.14 以前なら

<component name="pageCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
  <initMethod name="addCustomizer">
    <arg>
      <component class="org.seasar.framework.container.customizer.AspectCustomizer">
        <property name="interceptorName">"hogeLogManagerInterceptor"</property>
        <property name="pointcut">"do.*, initialize, prerender"</property>
      </component>
    </arg>
  </initMethod>
</component>

のようになります.
# 後者の書き方は 2.4.15 でも使えますが前者がオススメです.


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




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