2020年1月15日
Spring Boot 2系にあげたときにやったことをまとめようと思います。関連記事 今回は、Spring Data JPAの話です。Spring Boot 2.0.9.RELEASEに上げた話になります。2.2対応はまたいつか書きます。
Spring Bootのバージョンを1.5.22
から2.0.9
に上げると依存しているライブラリのバージョンが次のようになります。
Spring Boot 1.5.22.RELEASE → Spring Boot 2.0.9.RELEASE
デフォルトのコネクションプールがTomcatからHikariCPになった。
コネクションプールにHikariCPを利用してDataSourceをカスタマイズする際、url
でなく、jdbc-url
にする。参考
application.properties
app.datasource.jdbc-url=jdbc:mysql://localhost/test
app.datasource.username=dbuser
app.datasource.password=dbpass
app.datasource.maximum-pool-size=30
@Bean
@ConfigurationProperties("app.datasource")
public HikariDataSource dataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
X-Rayを使ってSQLクエリをトレースする際、org.apache.tomcat.jdbc.pool.JdbcInterceptor
を実装したインターセプタを利用するため、HikariCPを依存関係から除外して、tomcat-jdbcを追加しなければなりません。参考
build.gradle
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa") {
exclude group: 'com.zaxxer'
}
implementation "org.apache.tomcat:tomcat-jdbc"
}
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</dependency>
</dependencies>