[Seasar-user:3422] Re: 自動バインディングについて
KOMORI Yusuke
[E-MAIL ADDRESS DELETED]
2006年 3月 23日 (木) 23:19:50 JST
穐山さん、はじめまして。
こもり@SMGです。
On Wed, 22 Mar 2006 17:13:25 +0900, "穐山雄治" <[E-MAIL ADDRESS DELETED]> wrote:
> instance属性をsingletonで登録したコンポーネントに対して、instance属性をsessionで登録したコンポーネントを設定するという設定でTomcatを起動すると起動時に下記エラーが発生します。
> org.seasar.framework.exception.EmptyRuntimeException:
> [ESSR0007]sessionはnullあるいは空であってはいけません
> .....
>
> 例えば、singletonのコンポーネントの初期化時は初期化だけ行い、そのコンポーネントを実際に取得する際に、sessionで登録したコンポーネントを自動バインディングして取得するといった方法などはできないのでしょうか?
現在のS2Containerの動きとしては、singleton属性のコンポーネントはdicon
読み込み時にコンポーネント依存性の解決まで行うようになっており、インジェ
クションのタイミングを変えるのは現状では難しいと思います。
singletonのライフサイクルはアプリケーション全体に渡るので、自然な仕様
だと思います。
ただ、singleton のコンポーネントに対して session 属性のコンポーネント
を渡すようなシチュエーションがちょっと思い浮かばないのですが、もう少し具
体的なシチュエーションを教えていただければ、回避策が考えられるかもしれま
せん。(たぶん、session 属性のコンポーネントをインジェクションする対象と
しては、毎回インスタンス化する prototype 属性が適当だと思うのですが・・
・)
----------------------------------------------
小森 裕介 / Yusuke Komori
E-Mail:[E-MAIL ADDRESS DELETED]
Blog:http://d.hatena.ne.jp/y-komori/
URL:http://www.littleforest.jp/
Seasar-user メーリングリストの案内