1

ほとんど(すべて)のサーブレットのinitメソッドは似ています。主に初期化DataSource

BaseServlet保護されDataSourceたメソッドと実装されたメソッドを作成することを考えています。init他のすべてのサーブレットはこれを拡張しBaseServletます。

注意すべき落とし穴はありますか?

4

2 に答える 2

1

データベース関連のものを初期化する必要がある場合は、それをServletContextに入れることができます。私は、それほど多くのクラス継承を楽しんでいません。

今日では、サーブレットから始めるだけではないようです。フレームワークを選択してみませんか?

于 2012-10-18T12:18:15.087 に答える
1

現在のアプローチでは:

  1. メソッドが複数回呼び出されるため、拡張するサーブレットはすべてBaseServlet独自のデータソースを作成します。init()
  2. これはあなたが達成したいことではなく、すべてのサーブレットで使用される単一のデータソースを探していると思います。

上記が正しいと仮定すると、私は次のことをお勧めします

  1. データソースをシングルトンクラスでラップします。これにより、データソースが1回だけ初期化されるようになります。熱心な初期化を使用して、データソースがクラスロード自体で初期化されていることを確認します
  2. このクラスを使用して、サーブレットクラスのデータソース/接続を取得します。
于 2012-10-18T12:19:11.947 に答える