Spring boot 如何在spring boot 2.0上将默认hikari cp替换为tomcat池

Spring boot 如何在spring boot 2.0上将默认hikari cp替换为tomcat池,spring-boot,tomcat,connection,default,pool,Spring Boot,Tomcat,Connection,Default,Pool,我已经将spring boot应用程序迁移到2.0,并发现hikari连接池存在一些问题。当我提取数据库数据时,这会导致hikari cp超时,即连接不可用。我不知道为什么在上一个版本中,它工作正常 因此,我在application.yml中尝试将tomcat池与此配置一起使用,但它不起作用(以正确的YAML格式) My pom.xml具有以下与数据库相关的依赖关系: spring-boot-jpa spring-boot-jdbc jdbc7 如何排除hikari并使用tomcat连接池?我

我已经将spring boot应用程序迁移到2.0,并发现hikari连接池存在一些问题。当我提取数据库数据时,这会导致hikari cp超时,即连接不可用。我不知道为什么在上一个版本中,它工作正常

因此,我在
application.yml
中尝试将tomcat池与此配置一起使用,但它不起作用(以正确的YAML格式)

My pom.xml具有以下与数据库相关的依赖关系:

spring-boot-jpa
spring-boot-jdbc
jdbc7

如何排除hikari并使用tomcat连接池?

我找到了解决方案。 可以通过如下修改在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>
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=5
此外:

配合

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jdbc</artifactId>
</dependency>

org.apache.tomcat
TomcatJDBC

自Spring Boot 2.0发布以来,Spring Boot starter jdbc和Spring Boot starter数据jpa默认解析HikariCP依赖项,Spring.datasource.type属性将HikariDataSource作为默认值。因此,如果您的应用程序中同时存在这两个依赖项,则应将其从以下两个依赖项中排除

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')

我在撒谎。。。关于池大小的增加,只有排除帮助:/hikari仍然处于活动状态。它仍然无法解决Hikari问题,我们的设置为20分钟和100分钟,我们有时会出现错误,我们的生产系统崩溃。这很有帮助。谢谢!
spring:
   datasource:
     type: org.apache.tomcat.jdbc.pool.DataSource
implementation('org.apache.tomcat:tomcat-jdbc')