[解決済み] Spring-Bootです。JDBCプールの最大接続数などのプロパティはどのように設定するのですか?
質問
Spring-Bootは非常に素晴らしいツールですが、より高度な設定に関しては、ドキュメントが少しまばらです。データベース接続プールの最大サイズのようなプロパティはどのように設定すればよいのでしょうか。
Spring-Bootがサポートしているのは
tomcat-jdbc
,
HikariCP
と
Commons DBCP
をネイティブに設定するのは、すべて同じ方法ですか?
どのように解決するのですか?
これらの設定プロパティを設定することは、非常に簡単であることがわかりますが 公式ドキュメントの はより一般的なものなので、接続プールの設定情報を特に検索するときに見つけるのは難しいかもしれません。
tomcat-jdbc の最大プールサイズを設定するには、.properties または .yml ファイルにこのプロパティを設定します。
spring.datasource.maxActive=5
お好みで以下のようにすることもできます。
spring.datasource.max-active=5
この方法で、任意のコネクションプールのプロパティを設定することができます。
でサポートされているプロパティの完全なリストは以下のとおりです。
tomcat-jdbc
.
この仕組みをより一般的に理解するためには、Spring-Bootのコードを少し掘り下げてみる必要があります。
Spring-BootはDataSourceをこのように構築します( はこちらをご覧ください , 行102)。
@ConfigurationProperties(prefix = DataSourceAutoConfiguration.CONFIGURATION_PREFIX)
@Bean
public DataSource dataSource() {
DataSourceBuilder factory = DataSourceBuilder
.create(this.properties.getClassLoader())
.driverClassName(this.properties.getDriverClassName())
.url(this.properties.getUrl())
.username(this.properties.getUsername())
.password(this.properties.getPassword());
return factory.build();
}
DataSourceBuilderはクラスパス上にある一連のクラスをチェックすることによって、どのプーリングライブラリを使用するかを決定する役割を担っています。そして、DataSourceを構築し、それを
dataSource()
関数に返します。
この時点で、マジックは
@ConfigurationProperties
. このアノテーションはSpringにプレフィクスとして
CONFIGURATION_PREFIX
(これは
spring.datasource
). そのプレフィックスで始まる各プロパティに対して、Springはそのプロパティを持つDataSource上のセッターを呼び出そうとします。
TomcatのDataSourceは
DataSourceProxy
というメソッドを持っています。
setMaxActive()
.
こうして、あなたの
spring.datasource.maxActive=5
は正しく適用されます!
他のコネクションプールについてはどうでしょうか
試していませんが、Spring-Bootがサポートしている他の接続プール(現在はHikariCPかCommons DBCP)を使っている場合は、同じようにプロパティを設定できるはずですが、何が使えるかはプロジェクトのドキュメントを見る必要があります。
関連
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
強制型変換について
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
アクセス制限の解決方法: ---- in Java
-
ApiModel と @ApiModelProperty の使用法
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Spring Bootアプリのapplication.propertiesファイルにHikariCPを設定するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
プロジェクトの依存関係を解決できない。
-
強制型変換について
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
Javaジェネリックを1つの記事で
-
maven レポート エラー 解決不可能な親POM
-
Java基礎編 - オブジェクト指向
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Java の double データ型における 0.0 と -0.0 の問題