2017-01-10 11 views
1

最近、私は最新のSpringブートバージョン(1.4.2)に移行しました。古いプロパティのほうがよりサポートされていることがわかりました。Spring-boot_1.4.2データソース設定

旧設定

spring.datasource.max-active=1 
spring.datasource.validation-query=/* ping */ SELECT 1 
spring.datasource.test-on-borrow=true 
spring.datasource.initial-size=1 

新しい設定

spring.datasource.dbcp.max-active=1 
spring.datasource.dbcp.validation-query=/* ping */ SELECT 1 
spring.datasource.dbcp.test-on-borrow=true 
spring.datasource.dbcp.initial-size=1 

新しい構成に移行した後、私のアプリケーションは、まだデフォルトの設定である10の接続を消費しています。

私の欠点は何ですか?

+0

。 –

+0

私はデフォルトのプールを使用しています。それはtomcat-jdbcですか? –

+0

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-connect-to-production-databaseに従ってTomcatにする必要があります。だから、あなたは 'spring.datasource.dbcp。*'の代わりに 'spring.datasource.tomcat。*'を使うべきだと思います。 – g00glen00b

答えて

5

the documentationによると、デフォルトでは、SpringブートはTomcat JDBCを使用します。 spring-boot-starter-jdbcには、spring-boot-startter-data-jpaに含まれています。

  • 私たちは、その性能と並行処理のためのデータソースをプールTomcatを好むので、それが利用可能な場合、我々は常にそれを選択してください。
  • HikariCPが利用可能な場合は、それを使用します。
  • TomcatプーリングデータソースもHikariCPも利用できない場合、Commons DBCPが使用可能な場合は使用しますが、本番環境では推奨しません。
  • 最後に、Commons DBCP2が利用可能であれば、それを使用します。

これにより、たとえば、spring.datasource.tomcat.*プロパティを使用しなければならないことを意味する:

また
spring.datasource.tomcat.max-active=1 
spring.datasource.tomcat.validation-query=/* ping */ SELECT 1 
spring.datasource.tomcat.test-on-borrow=true 
spring.datasource.tomcat.initial-size=1 

、あなたはDBCPを好むならば、あなたはspring.datasource.typeプロパティを定義することで、そうして完全修飾名を提供することができます接続プールの実装のこの場合maxActiveが存在しないので、the documentation of DBCPに従ってmaxTotalを使用する必要があります。

正しいバージョンのDBCPをクラスパスに追加することを忘れないでください。あなたは1.1を追加している場合、あなたは2.xのを使用している場合(あなたが使用するように)、しかし、あなたはspring.datasource.dbcp2.*プロパティを使用する必要がありますspring.datasource.dbcp.*プロパティを使用することができます:あなたが使用しているプール

# Commons DBCP 1.x 
spring.datasource.dbcp.max-total=1 
spring.datasource.dbcp.validation-query=/* ping */ SELECT 1 
spring.datasource.dbcp.test-on-borrow=true 
spring.datasource.dbcp.initial-size=1 
spring.datasource.type=org.apache.commons.dbcp.BasicDataSource # To override the default classpath lookup behaviour 

# Commons DBCP 2.x 
spring.datasource.dbcp2.max-total=1 
spring.datasource.dbcp2.validation-query=/* ping */ SELECT 1 
spring.datasource.dbcp2.test-on-borrow=true 
spring.datasource.dbcp2.initial-size=1 
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource # To override the default classpath lookup behaviour 
+0

外部データソースが指定されていない場合は、tomcat-jdbc設定を使用する必要があります。 –

+0

これは、私がドキュメントから引用したように、デフォルトのyesです。最初にTomcat DataSourceを探します。これは、spring-boot-startter-data-jpaの中にあるため、変更を加えなければクラスパス上にあることが保証されています。あなたはclasspathからtomcat-jdbcを削除するか、 'spring.datasource.type'を使って動作を変更することで変更できます – g00glen00b

関連する問題