[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 メーリングリストの案内