[Seasar-user:4013] Re: 2つのプロジェクト間でのDIが行われない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2006年 7月 3日 (月) 19:41:32 JST
小林 (koichik@しながわ) です.
Date: Mon, 3 Jul 2006 18:46:05 +0900
From: "吉岡 武志/インフォセンス" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:4010] Re: 2つのプロジェクト間でのDIが行われない
> > 親のコンテナから JobDao を取得しようとすると,子供のコンテナ
> > (main 側) よりも親 (test 側) 自身に登録されている JobDaoを探し,
> > MockJobDaoImpl が見つかるはずなのでそれを返します.
>
> コンテナの登録に関して勘違いしていたのですが、上記の説明から実際にDIされる
> クラスは
> MockJobDaoImplになるかと思います。しかし、実際にDIされたのは子供のコンテ
> ナ(main側)の
> JobDaoImplがDIされました。
DI される側のコンポーネントはどの dicon に定義 (あるいは自動登録)
していますか?
そのコンポーネントが子供のコンテナにいると,まずはそのコンテナ
つまり main 側の dicon からコンポーネントが検索されます.
> また、(test側)のMockJobDaoImplクラス名をJobDaoImplに変更して実行すると今度
> は
> (test側)のJobDaoImpl(元MockJobDaoImpl)クラスがDIされました。
>
> ここで、気になるのが2点で
> ・MockJobDaoImplがDIされないこと。(test(親)側がDIされない)
> ・MockJobDaoImplクラス名をJobDaoImplに変更することで、test(親)側がDIされた
> こと。
> です。
test 側が DI されるようになったのではなく,main 側の
JobDaoImpl が DI されているだけではないかと思います.
おそらく,吉岡さんがやりたいことを実現するには dicon の
構成を変える必要があると思います.
どんなコンポーネントがあり,どのコンポーネントに
どのコンポーネントを DI したいのかを簡単に書き出して
いただけないでしょうか?
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内