首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在spring boot 2.0上将默认的hikari cp替换为tomcat池

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

Stack Overflow用户
提问于 2018-05-04 18:45:09
回答 3查看 18.3K关注 0票数 14

我已经将spring boot应用程序迁移到了2.0,并发现了一些hikari连接池的问题。当我获取数据库数据时,这会导致hikari cp timeout ie。连接不可用。我不知道为什么在以前的版本中这是正确的。

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

代码语言:javascript
复制
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

我的pom.xml有以下与DB相关的依赖关系:

代码语言:javascript
复制
spring-boot-jpa
spring-boot-jdbc
jdbc7

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-04 20:00:47

我已经找到了解决方案。这可以在pom.xml中通过如下修改来解决:

代码语言:javascript
复制
<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的问题可能是因为默认的连接池很小。所以这个问题也可以通过这个改变来解决,但不是我自己验证的。只需要给其他人注意一下。大概是这样的:

代码语言:javascript
复制
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=5
票数 15
EN

Stack Overflow用户

发布于 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。如果您在应用程序中同时具有这两个依赖关系,则应将其从这两个依赖关系中排除,如下所示。

代码语言:javascript
复制
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文件中:

代码语言:javascript
复制
spring:
   datasource:
     type: org.apache.tomcat.jdbc.pool.DataSource

在依赖关系中:

代码语言:javascript
复制
implementation('org.apache.tomcat:tomcat-jdbc')
票数 5
EN

Stack Overflow用户

发布于 2018-07-09 22:11:04

另外:

代码语言:javascript
复制
spring:
    datasource:
        type: org.apache.tomcat.jdbc.pool.DataSource

与配合使用

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jdbc</artifactId>
</dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50173081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档