我已经将spring boot应用程序迁移到了2.0,并发现了一些hikari连接池的问题。当我获取数据库数据时,这会导致hikari cp timeout ie。连接不可用。我不知道为什么在以前的版本中这是正确的。
因此,我尝试在application.yml中使用带有此配置的tomcat池,但它不起作用(以正确的YAML格式)。
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource我的pom.xml有以下与DB相关的依赖关系:
spring-boot-jpa
spring-boot-jdbc
jdbc7如何排除hikari并使用tomcat连接池?
发布于 2018-05-04 20:00:47
我已经找到了解决方案。这可以在pom.xml中通过如下修改来解决:
<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>然而,hikari的问题可能是因为默认的连接池很小。所以这个问题也可以通过这个改变来解决,但不是我自己验证的。只需要给其他人注意一下。大概是这样的:
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=5发布于 2019-07-18 13:58:50
自Spring Boot 2.0发布以来,spring-boot-starter-jdbc和spring-boot-starter- HikariCP -jpa默认解决了数据依赖关系,spring.datasource.type属性将HikariDataSource作为默认value.So。如果您在应用程序中同时具有这两个依赖关系,则应将其从这两个依赖关系中排除,如下所示。
implementation('org.springframework.boot:spring-boot-starter-data-jpa') {
exclude group: 'com.zaxxer', module: 'HikariCP'
}
implementation('org.springframework.boot:spring-boot-starter-jdbc') {
exclude group: 'com.zaxxer', module: 'HikariCP'
}之后,您可以配置其他您喜欢使用的池化技术,如下所示。在application.yml文件中:
spring:
datasource:
type: org.apache.tomcat.jdbc.pool.DataSource在依赖关系中:
implementation('org.apache.tomcat:tomcat-jdbc')发布于 2018-07-09 22:11:04
另外:
spring:
datasource:
type: org.apache.tomcat.jdbc.pool.DataSource与配合使用
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</dependency>https://stackoverflow.com/questions/50173081
复制相似问题