[Seasar-user:16700] Re: 【S2container】DIされるコンポーネントのインスタンス名に関して

Takafumi Yoshida [E-MAIL ADDRESS DELETED]
2009年 1月 21日 (水) 14:21:37 JST


いつもお世話になります。吉田@オプティクスです。


2009/01/21 12:25 oono <[E-MAIL ADDRESS DELETED]>:
> public class HugaPage{
>
> public HogeService hogeService;  ←DI (OK)
> public HogeService aaa;  ←DI (OK)
> public HogeDao hogeDao; ←DI (OK)
> public HogeDao bbb; ←DI (NG)
> }
>
> XxxService XxxLogic などは自動バインディングと自動登録
> 適用対象なのでdiconファイル等には何も設定していません。
> 上記インスタンスのhogeService を 任意の名前に変えても
> 動作するのですが、Daoの場合インスタンスを例えばaaaとかに変更して
> しまうとDIされません。
>
> インスタンス名というのは何でも良いのでしょうか?

プロパティ名は型をインターフェースで指定している場合は、何でもいいはず
ですが、型を実装クラスにしている場合は、コンポーネント名とあわせる必要
があったかと。下記が参考になるかも。

http://s2container.seasar.org/2.4/ja/DIContainer.html#AutoBindingMode
http://s2container.seasar.org/2.4/ja/DIContainer.html#SMARTdeployComponentName

上記のケースではHogeService, HogeDaoともにインターフェースなので、すべてDI
されるように思いますが・・・


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