6

Java で Web アプリケーションを開発していますが、データベースとの接続が必要です。リソースの管理は非常に重要です。アプリケーションは Tomcat 6 サーブレット コンテナー内にあり、接続を管理するためにBoneCPを実装しました (Spring は使用できません)。

DataSource の JNDI ルックアップが高すぎると読んだことがあります。DataSource オブジェクトのシングルトンを作成して、JNDI リソースを 1 回だけ取得し、将来の接続で同じ DataSource を返すことを考えています。

質問: DataSource を 1 回だけ作成し、同じ DataSource から接続を取得することは良い考えですか? 同じ接続を取得したくありません。同じ DataSource のみを取得します。

ありがとうございました ;)

4

2 に答える 2

4

はい、Renjith が提案したように、作成する必要があるのはDataSource一度だけです。私は実際に昨日この同じ問題に遭遇しました。「getConnection」メソッドで毎回、新しい InitialContext と DataSource を不必要に作成していることに気付きました。クラスが初めてロードされたときにのみ DataSource オブジェクトを作成するコードの静的ブロックを持つように接続マネージャー クラスを修正しました ( JDBC 接続プール (Glassfish) の適切な使用法でBalusC の回答を読んだ後)

古い学校のパターンを使用することを考えServiceLocatorました (上記のリンクの Pascal の回答を参照してください) が、私のニーズには少しやり過ぎだと感じました。

@Resourceもう 1 つの可能性は、DataSources への注入で注釈を使用することもできますが、それは では機能しないようですTomcat 7

于 2013-06-25T15:10:33.090 に答える
4

ここで説明されているように、プーリング データソースを使用します。

http://www.javaranch.com/journal/200601/JDBCConnectionPooling.html

于 2013-01-16T16:09:56.017 に答える