[Seasar-user:20026] Re: 複数個所にインジェクションされたコンポーネントに対してアスペクトが効かない現象

石川雅之 - エクスマート [E-MAIL ADDRESS DELETED]
2010年 7月 29日 (木) 20:27:12 JST


小林様

お世話になっております。石川です。

以下のようなサンプルを作成し、動作させてみたところご報告したような
現象は発生しませんでした。

○Dao
 AppleDao,BananaDao

○Manager
 FruitManager(両DAOをインジェクション)
 VegetableManager(BananaDaoのみをインジェクション)

○Interceptor
 OriginalInterceptor(AutoRegisterで両Daoに適用)

○dicon
<!-- DAO -->
<component class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
	<initMethod name="addReferenceClass">
		<arg>@[E-MAIL ADDRESS DELETED]</arg>
	</initMethod>
    <initMethod name="addClassPattern">
        <arg>"s2test.dao"</arg>
        <arg>".*Dao"</arg>
    </initMethod>
</component>

<!-- Manager -->
<component class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
	<initMethod name="addReferenceClass">
		<arg>@[E-MAIL ADDRESS DELETED]</arg>
	</initMethod>
	<initMethod name="addClassPattern">
		<arg>"s2test.manager"</arg>
		<arg>".*ManagerImpl"</arg>
	</initMethod>
</component>

<!-- オリジナル -->
<component name="originalInterceptor" class="s2test.interceptor.OriginalInterceptor">
</component>

<!-- DAO層用インターセプターチェーン -->
<component name="daoIntercept" class="org.seasar.framework.aop.interceptors.InterceptorChain">
	<initMethod name="add"><arg>originalInterceptor</arg></initMethod>
</component>

<!-- DAO用アスペクトオートレジスタ -->
<component class="org.seasar.framework.container.autoregister.AspectAutoRegister">
	<property name="interceptor">daoIntercept</property>
	<initMethod name="addClassPattern">
		<arg>"s2test.dao"</arg>
		<arg>".*Dao"</arg>
	</initMethod>
</component>


複数箇所にインジェクションされている、というのは直接的な原因でなく
他の箇所にあるのかもしれません。。。

取り急ぎご報告致します。

石川




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