makotan _at_ gmail dot com

「あれ」

どっかでSwingをやってることがバレバレなんではっきり書く・・・ついでに追加要望も(笑)
今作ってるやつは、JFrameにTabを貼り付けてそこの中に画面用に作った任意のPanelをプログラムで置いていく感じのアプリ。
Panelはprototypeとして宣言してコンテナから取ってくるようにしてるんだけど、Panelに必要なService系のコンポーネントはinjectionされるのでOK!(これが狙いだしね)
問題はDtoをdiconに定義すると、元々requestもsessionも存在しないのでPanelにinjectionするためにはSingletonにするしかない。そうするとPanelはprototypeなのにデータはSingletonになる<これが一番の問題
結果として複数個のPanelを取得するなんて事が出来なくなる(とりあえずメソッドを呼んで引数に渡すようにしたけど)
Panelの実験がうまくいったらFrameも本当はコンテナから取得できたら良いんだけど、困ったのがFrame単位で扱うデータを変えたい。
たとえばFrameAは顧客Aの情報を扱うために開いて、FrameBは顧客Bの情報を扱うためにっていう事になると、Frameの中に保存している情報をPanelを作った後にPanelのメソッドを呼びだして渡す必要が出てくる
ここら辺でつかDIコンテナにFrameとかPanelとかのスコープを定義できたらいいのになぁ〜って思った
そしたらFrameAの顧客Aの情報はPanelにinjectionされてあとはPanelが勝手にやるし、顧客情報は直接関係ないPanelを開くときもフレームが認識する必要が無くなるなぁと
そこをコンテナ本体に一切手を入れずに好き勝手に拡張できるととっても幸せ♪
で、ここからその時に言わなかったと思う追加の要望(笑)
ホットデプロイでClassオブジェクトを削除しない版が欲しい!
Panelを2.3でホットデプロイにしてみたら・・・
・変更前のPanelを表示
・その状態でソースコードを変更して保存
・テスト中の画面に戻る
・ちょっと操作したらClassがないってエラーで怒られた(T.T)
ClassオブジェクトさえあればSwingでもホットデプロイが出来るのに!!
再起動してログインして・・・ってやっぱ面倒くさい(^^;