3_SpringBoot2.x 默认的数据库连接池 HikariCP

SpringBoot的默认数据库连接池

SpringBoot在1.x版本中,默认连接池是Tomcat的连接池,在SpringBoot在2.x版本中更换为HikariCP数据库连接池

性能对比

image.png

HikariCP速度快的原因

  1. 字节码级别优化(很多⽅法通过 JavaAssist ⽣成)
  2. ⼤量⼩改进
    • ⽤ FastStatementList 代替 ArrayList
    • ⽆锁集合 ConcurrentBag
    • 代理类的优化(⽐如,⽤ invokestatic 代替了 invokevirtual)

如何在SpringBoot1.x版本中配置

先移出spring-boot-starter-jdbc中的tomcat-jdbc依赖

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache</groupId>
                    <artifactId>tomcat-jdbc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

再引用

   <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <version>3.3.1</version>
    </dependency>

后再配置文件中配置常用参数

spring.datasource.type=com.zaxxer.hikari.HikariDataSource 指定Springboot的datasource
常⽤配置


• spring.datasource.hikari.maximumPoolSize=10
• spring.datasource.hikari.minimumIdle=10
• spring.datasource.hikari.idleTimeout=600000
• spring.datasource.hikari.connectionTimeout=30000
• spring.datasource.hikari.maxLifetime=1800000

官网