[Seasar-user:16305] Re: [HotDeploy]クリエータで自動登録したコンポーネントが、インターフェースの配列プロパティに自動バインディングされない
Shotaro Tsubouchi
[E-MAIL ADDRESS DELETED]
2008年 11月 16日 (日) 13:39:44 JST
ショータローこと坪内です。
> 配列で DI したいものについては AutoRegister で
> 登録してください.
AutoRegister で登録すれば良かったのですね。
#わざわざ自前で Creator を作ってました。。
ありがとうございました。
Koichi Kobayashi さんは書きました:
> 小林 (koichik) です.
>
> Date: Sun, 16 Nov 2008 11:08:41 +0900
> From: Shotaro Tsubouchi <[E-MAIL ADDRESS DELETED]>
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:16303] [HotDeploy]クリエータで自動登録したコンポーネントが、インターフェースの配列プロパティに自動バインディングされない
>
>> dicon に手動で登録した場合や、COOL Deploy では問題ないのですが、
>> インタフェースを持つクラスをクリエータで自動登録した場合、
>> そのインタフェースの配列をコンポーネントのプロパティとして定義しても、
>> 自動バインディングされません。
>
> HOT deploy の場合はファイルシステムや Jar の中を
> 走査するわけではなく,プロパティの名前や型から
> ルールに従って実装クラスを求めます.
> そのため,インタフェースを実装したクラスを
> 全て探すことはできません.
> HOT deploy でファイルシステム等を走査すると
> リクエストの度にアプリケーション全体を初期化
> し直すことに等しくなり,サクサクとはいかなく
> なってしまうからです.
> そのため配列型のプロパティから自動登録は行って
> いません.
>
>> とりあえず、手動登録して回避していますが、
>> HOT Deploy 時の自動登録でも自動バインディングされてくれるとありがたいです。
>
> 自動登録するように修正するとしても,最初に見つかった
> 実装クラスのインスタンスを唯一の要素とする長さが
> 1 の配列を DI することにしかならないので,意味が
> ないと思います.
>
> 配列で DI したいものについては AutoRegister で
> 登録してください.
>
>
Seasar-user メーリングリストの案内