[Seasar-user:18335] [SAStruts] Tomcat起動時のDB接続について
Hiroshi Ogawa
[E-MAIL ADDRESS DELETED]
2009年 8月 20日 (木) 00:58:14 JST
小川です。
お世話になります。
Seasar 2.4.39
SAStruts 1.0.4-sp6
Tomcat 6.0.20
Tomcat起動時にマスタテーブルからデータを取得し、
メモリ上にキャッシュする処理を実装することを考えています。
Tomcat起動時にコンテナが初期化され、シングルトンな
コンポーネントはその時点で初期化処理が走るとのことですので、
diconにシングルトンのコンポーネントを登録し、
そのコンポーネントでDB接続を行うために以下のように
Serviceを定義しました。
public class HogeSingleton {
@Resource
protected FooService fooService;
}
この設定でTomcatを起動すると、fooServiceをバインドできない旨の
エラーが発生しました。
diconに記述したコンポーネントはSMART deploy の対象にならない
ようですので、上の方法でServiceをDIで設定できたとしても、
非SMART deploy対象のコンポーネントからSMART deploy対象の
コンポーネント(Service)を参照することになり、そもそも非推奨な方法だと
認識しています。
http://ml.seasar.org/archives/seasar-user/2009-February/016916.html
ここで質問ですが、
・Tomcat起動時にDBアクセスをServiceを使って行うためには、
どのような方法をとるべきでしょうか?それとも起動時にServiceを使うことは
できないでしょうか?
・上記の設定でfooServiceがDIされない理由はどういったものでしょうか?
app.diconから2つのdiconをインクルートした場合、一方からもう一方で
定義されているコンポーネントをDIできない?ことと同じような理由でしょうか?
(なんとなく違う気がします・・・)
よろしくお願いします。
Seasar-user メーリングリストの案内