[Seasar-user:4010] Re: 2つのプロジェクト間でのDIが行われない

吉岡 武志/インフォセンス [E-MAIL ADDRESS DELETED]
2006年 7月 3日 (月) 18:46:05 JST


吉岡です。

回答のほどありがとうございます。

> コンポーネントの登録そのものには優先という考え方はありません.
> それぞれの dicon ファイルの記述に従って全て自動登録されます.
> test 側のコンテナには MockJobDaoImpl が登録され,main 側にの
> コンテナには JobDaoImpl が登録されます.

最初に見つかったクラスのみコンテナに登録されると思っていました。
ありがとうございます。

> 吉岡さんの例では,test 側の dicon を読み込んだコンテナと,
> main 側の dicon を読み込んだコンテナの二つが存在し,test 側の
> コンテナは親,main 側のコンテナは子供になります.
>
> 親のコンテナから JobDao を取得しようとすると,子供のコンテナ
> (main 側) よりも親 (test 側) 自身に登録されている JobDaoを探し,
> MockJobDaoImpl が見つかるはずなのでそれを返します.

コンテナの登録に関して勘違いしていたのですが、上記の説明から実際にDIされる
クラスは
MockJobDaoImplになるかと思います。しかし、実際にDIされたのは子供のコンテ
ナ(main側)の
JobDaoImplがDIされました。

また、(test側)のMockJobDaoImplクラス名をJobDaoImplに変更して実行すると今度
は
(test側)のJobDaoImpl(元MockJobDaoImpl)クラスがDIされました。

ここで、気になるのが2点で
・MockJobDaoImplがDIされないこと。(test(親)側がDIされない)
・MockJobDaoImplクラス名をJobDaoImplに変更することで、test(親)側がDIされた
こと。
です。

上記に2点に関して教えて頂けないでしょうか?

> 単に引用する際に削っただけかもしれませんが念のため.

ご指摘ありがとうございます。
今回の質問で特に影響がないと思い、AspectAutoRegisterを削除しておりました。

                                                 - 以上 -





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