[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 メーリングリストの案内