[Seasar-user:3424] Re: 自動バインディングについて

穐山雄治 [E-MAIL ADDRESS DELETED]
2006年 3月 24日 (金) 13:59:51 JST


穐山です。

> 小林 (koichik) です.
>
> > Seaser2の自動バインディング機能で、instance属性をsingletonで登録したコンポーネントに対して、instance属性をsessionで登録したコンポーネントを設定するといった事はできないのでしょうか?
>
> できないというより意味がないといったところです.
>
> > instance属性がprototypeのコンポーネントに対してはinstance属性をsessionで登録したコンポーネントを設定するといったことはできています。
>
> コンポーネントのライフサイクルが短いコンポーネントが
> より長いコンポーネントを参照することは問題ありません.
> ライフサイクルの長さは
>
> singleton > session > request > prototype
>
> となります.
>
> > 例えば、singletonのコンポーネントの初期化時は初期化だけ行い、そのコンポーネントを実際に取得する際に、sessionで登録したコンポーネントを自動バインディングして取得するといった方法などはできないのでしょうか?
>
> 通常 HTTP セッションは多数存在するわけですが,その中の
> どのセッションに登録されたコンポーネントを取得すべきですか?
> singleton のコンポーネントはインスタンスが一つしか存在せず,
> 複数のスレッド間で共有されるということをじっくり考えてみて
> ください.
>
> session のコンポーネントを必要とするコンポーネントは
> そもそも singleton ではなく,prototype が適切なのでは
> ないでしょうか.
> prototype であれば,コンポーネントを実際に取得する際に
> インスタンスが生成され,そのスレッドに関連づけられている
> セッションに登録されているコンポーネントが DI されます.
>
確かに言われている通りです。
あまり考えずにあせってメールをしてしまいました。
申し訳ありませんでした。

また、回答ありがとうございました。



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