[Seasar-user:10219] Re: setterインジェクションについて
渡辺茂昭
[E-MAIL ADDRESS DELETED]
2007年 8月 30日 (木) 13:40:00 JST
渡辺茂昭です。
ご回答ありがとうございます。
ツリーの件は了解です。
>コンソールに
>
>クラス(CccPage)のコンポーネント定義を登録します
>
...
はい、「CccPageを登録します」と出ています。この動作は明示的に宣言して
いるのでいいのではないかと思うのですが...
またこのとき同時に「aaaDaoを登録します」と出てますが、上記説明ですと、
member.diconからはaaaDaoは見えないのではないかと思うのですが....
ごめんなさい、
>のようなメッセージが出力されていないでしょうか?
>もし出力されているなら,コンポーネント名が
>間違っていないか確認してください.
>
の意味が良くわからないのですが...
なにはともあれXIncludeの件了解しました。試してみます。
>小林 (koichik) です.
>
>Date: Thu, 30 Aug 2007 00:02:11 +0900
>From: 渡辺茂昭 <[E-MAIL ADDRESS DELETED]>
>To: [E-MAIL ADDRESS DELETED]
>Subject: [Seasar-user:10199] setterインジェクションについて
>
>> 1.root.dao.aaaDaoというインターフェースを自動で登録しています。
>> 2.root/service/service.diconにbbbServiceというコンポーネントを明示的に
>> 登録します。このコンポーネントはaaaDaoを明示的にsetterインジェクションし
>> ています。
>> 4.今状況下で、bbbServiceはTOMCAT起動時にインスタンスが作成されるようで、
>> 「aaaDaoというコンポーネントはありません」というエラーでプロパティが設定
>> できません。
>
>SMART deploy で自動登録されるコンポーネントは
>ルートのコンテナ (app.dicon) に登録されます.
>そのため,service.dicon に定義されている
>bbbService には aaaDao は DI されません.
>
>こちらの図も参考にどうぞ.
>
>http://s2container.seasar.org/2.4/s2-framework/ja/apidocs/org/seasar/
>framework/container/S2Container.html
>
>この図の B が service.dicon だとすると,そこに
>登録されているコンポーネント bbbService から
>A (app.dicon) に登録されているコンポーネント
>(aaaDao) を参照することはできません.
>
>> 3.root/web/member.diconにcccPageというコンポーネントを明示的に登録して
>> います。このコンポーネントはaaaDaoを明示的にsetterインジェクションしてい
>> ます。
>> 5.cccPageのプロパティはそのページをアクセスした時点でインスタンスが生
>> 成され、それに伴いaaaDaoも生成されて、プロパティが設定されます。
>
>member.dicon に登録されている cccPage に
>aaaDao が DI されることはないはずなので,
>実際には SMART deploy で自動登録されているのでは
>ないかと思います.
>コンソールに
>
>クラス(CccPage)のコンポーネント定義を登録します
>
>のようなメッセージが出力されていないでしょうか?
>もし出力されているなら,コンポーネント名が
>間違っていないか確認してください.
>
>> ここで質問なのですが、bbbServiceのインスタンス生成を無事行うにはどうし
>> たら言いのでしょうか?
>
>XInclude を使って service.dicon および
>member.dicon をインクルードしてください.
>
>http://s2container.seasar.org/2.4/ja/DIContainer.html#XInclude
>
>「includeタグとの違い」のところに今回のような
>状況での XInclude と通常の <include> との違いが
>説明されています.
>
>
>--
><component name="koichik">
> <property name="fullName">"Koichi Kobayashi"</property>
> <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
> <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
></component>
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内