[Seasar-user:4002] Re: 2つのプロジェクト間でのDIが行われない
吉岡 武志/インフォセンス
[E-MAIL ADDRESS DELETED]
2006年 6月 30日 (金) 17:24:17 JST
お世話になります。吉岡です。
先ほどのmainProject と testProjectという2つのプロジェクトの
環境(クラスの出力先が2つある環境)で以下のdiconファイルの設定及びクラス
の配置を行いました。
[mainProject側のdiconファイル]
<component class=
"org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
<initMethod name="addClassPattern">
<arg>"jp.co.sample.dao"</arg>
<arg>".*Impl"</arg>
</initMethod>
</component>
<component class
="org.seasar.framework.container.autoregister.AspectAutoRegister">
<property name="interceptor">daoInterceptorChain</property>
<initMethod name="addClassPattern">
<arg>"jp.co.sample.dao"</arg>
<arg>".*Impl"</arg>
</initMethod>
</component>
[testPorject側のdiconファイル]
<include = "mainProject側のdiconファイル">
<component class
="org.seasar.framework.container.autoregister.ComponentAutoRegister">
<property name="autoNaming">
<component class
="org.seasar.framework.container.autoregister.DefaultAutoNaming"/>
</property>
<initMethod name="addClassPattern">
<arg>"jp.co.sample.dao"</arg>
<arg>".*Impl"</arg>
</initMethod>
<initMethod name="addReferenceClass">
<arg>@[E-MAIL ADDRESS DELETED]</arg>
</initMethod>
</component>
[ クラスファイルの配置 ]
・MockJobDaoImplは、JobDaoをImplementsしています。
・MockJobDaoImplは、testPorject側の[jp.co.sample.dao]パッケージに配置しま
す。
・JobDaoImplは、JobDaoをImplementsしています。
・JobDaoImplは、mainProject側の[jp.co.sample.dao]パッケージに配置します。
・JobDaoのインターフェースは、mainProject側の[jp.co.sample.dao]パッケージに
配置します。
実行するクラス(testProject側のクラス)から、[testPorject側のdiconファイル]を
includeして
実行したところmainProject側のincludeが優先して読み込まれます。
(JobDaoImplが自動登録されている状態)
[ S2Container定義の分割とインクルードの文章引用 ]
コンポーネントの検索順は、先ず自分自身に登録されているコンポーネントを探し
て、見つからない場合は、
includeされている順に子供のS2Containerに登録されているコンポーネントを検索
し、最初に見つかった
コンポーネントが返されます。
上記の記述があったため、testPorject側にdiconファイルの定義が優先されると思
いました。
これは、mainProject側にインターフェースがあるためJobDaoImpl(mainProject側)
が自動登録される
のでしょうか?
それとも、diconファイルの定義が不正のため発生している現象でしょうか?
Seasar2を勉強している段階で、初歩的な質問かもしれませんが
ご教授のほどよろしくお願いします。
- 以上 -
*-----------------------------------------*
吉岡 武志(Takeshi Yoshioka)
Seasar-user メーリングリストの案内