SpringBoot的默认数据库连接池
SpringBoot在1.x版本中,默认连接池是Tomcat的连接池,在SpringBoot在2.x版本中更换为HikariCP数据库连接池
性能对比
HikariCP速度快的原因
- 字节码级别优化(很多⽅法通过 JavaAssist ⽣成)
- ⼤量⼩改进
• ⽤ 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