[Seasar-user:15296] 【Teeda】sessionのDIについて
r.m
[E-MAIL ADDRESS DELETED]
2008年 8月 7日 (木) 16:38:50 JST
お世話になっております。
水澤です。
すみません。最初に投稿した内容
AOPと書いてしまいました。
正しくはDIです。
S2 2.4.26
teeda 1.0.13-sp2
s2dao 1.0.48
を利用しています。
この際
Pageクラスにて、
public HttpSession session;
initialize(){~}
prerendar(){~}
sessionのDI時に
sessionに複数のコンポーネントが登録されています。
とエラーメッセージが表示されます。
以前も同じ事をしていたのですが、今回全て最新のバージョンで
やった際に、上記のエラーになってしまいました。
また、アプリケーション起動時に
マスター情報のInitializeをしており、その中でDaoにアクセスしています。
initializeは
<components>
<component class="jp.co.common.ApplicationInitializer">
<initMethod name="initialized" />
</component>
</components>
で、app.diconに登録しており
その中で
------------------ApplicationInitializer------------------
SingletonS2ContainerFactory.init();
S2Container container = SingletonS2ContainerFactory.getContainer();
container.init();
-----------------------------------------------------------
を行っています。
これは、ApplicationInitializer内にて、マスター情報をinitする際にDaoを利用する為
この様にしました。
この部分を削除すると、sessionは正常に取得する事は出来ましたが
以前も同じように実装していた物が、最新のバージョンでは動作しません。
色々調べまして、HttpSessionを利用するのは推奨されていないようですが
上記の疑問をどうにか解決したいと思っております。
また、通常マスター情報の初期化(Daoを伴う場合)はどの様に行うのが望ましいでしょうか?
現在の実装では、シングルトンパターンで実装しており
初回のgetInstance()時に初期化していまして、一番最初のアクセスがあった際に初期化するのでも
いいのですが、なるべくならサーバー起動時い初期化したいと思っております。
宜しくお願い致します。
Seasar-user メーリングリストの案内