[Seasar-user:6354] インターセプターへのDIについて
松山 大樹
[E-MAIL ADDRESS DELETED]
2007年 2月 26日 (月) 18:56:43 JST
松山です。
{Seasar-user:4600] などでも言及されていますが、インターセプターへ、session スコープの
コンポーネントをDI する場合の、dicon ファイルの記述について、教えてください。
S2-2.4.7 + S2JSF1.1.1 です。
現在、アクションへのインターセプターとして、
----------------------------------------------------------------------
<component name="traceInterceptor" class="org.seasar.framework.aop.interceptors.TraceInterceptor"/>
<component name="actionThrowsInterceptor" class="hoge.interceptors.ActionThrowsInterceptor"/>
<component name="actionInterceptorChain" class="org.seasar.framework.aop.interceptors.InterceptorChain">
<initMethod name="add"><arg>traceInterceptor</arg></initMethod>
<initMethod name="add"><arg>actionThrowsInterceptor</arg></initMethod>
</component>
----------------------------------------------------------------------
と定義し、
----------------------------------------------------------------------
<component class="org.seasar.framework.container.autoregister.AspectAutoRegister" >
<property name="interceptor">actionInterceptorChain</property>
<initMethod name="addClassPattern">
<arg>"hoge"</arg>
<arg>".*ActionBean,.*ActionImpl"</arg>
</initMethod>
</component>
----------------------------------------------------------------------
のように設定しています。
このactionInterceptorChain に、もう一つインターセプターを追加しようとしています。
新しいインターセプターでは、session スコープのコンポーネントを使用したいと考えています
(セッターインジェクション)。
そこで、
----------------------------------------------------------------------
<component name="traceInterceptor" class="org.seasar.framework.aop.interceptors.TraceInterceptor"/>
<component name="actionThrowsInterceptor" class="hoge.ActionThrowsInterceptor"/>
<component name="newActionInterceptor" class="hoge.NewActionInterceptor"/>
<component name="interceptorAdapter" class="org.seasar.framework.aop.interceptors.InterceptorAdapter">
<initMethod name="add"><arg>"newActionInterceptor"</arg></initMethod>
</component>
<component name="actionInterceptorChain" class="org.seasar.framework.aop.interceptors.InterceptorChain">
<initMethod name="add"><arg>traceInterceptor</arg></initMethod>
<initMethod name="add"><arg>actionThrowsInterceptor</arg></initMethod>
<initMethod name="add"><arg>interceptorAdapter</arg></initMethod>
</component>
----------------------------------------------------------------------
と変更してみたところ、NewActionInterceptor#invoke は実行されるのですが、DI されてほしい、
session スコープのコンポーネントがDI されていません。
NewActionInterceptor は、AbstractInterceptor のサブクラスとして作成したものです。
どの記述がおかしいのでしょうか?
よろしくお願いします。
--
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
::: ITシステム・インテグレートDiv.
::: Web・ソリューション&システム開発Unit.
::: 松山 大樹 - [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内