spring boot使用经验分享(五)hikari连接池

一、为什么使用hikari?

1)在SpringBoot2.x的默认连接池是hikari

2)HikariCP使用Javassist字节码操作库来实现动态代理,优化并精简了字节码,HikariCP应该是目前速度最快的连接池了。

二、实战

1)引入包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

2)参数配置

# jdbc_config datasource

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/product?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

spring.datasource.username=root

spring.datasource.password=123456

# Hikari

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

spring.datasource.hikari.minimum-idle=10 #为了性能考虑,不建议设置此值,而是让HikariCP把连接池当做固定大小的处理,默认minimumIdle与maximumPoolSize一样

spring.datasource.hikari.maximum-pool-size=10

spring.datasource.hikari.auto-commi

Spring Boot中,HikariCP是默认使用的数据库连接池。如果需要关闭或禁用HikariCP连接池,可以通过配置全局配置文件(`application.properties` 或 `application.yml`)来实现。具体方法如下: ### 1. **通过配置禁用连接池** 如果希望完全禁用连接池功能,可以将数据源类型设置为不使用连接池的实现。例如,可以使用`spring.datasource.type=com.zaxxer.hikari.HikariDataSource`的替代方案,如`org.springframework.boot.jdbc.SimpleDriverDataSource`,从而绕过HikariCP。 在`application.properties`中配置如下内容: ```properties spring.datasource.type=org.springframework.boot.jdbc.SimpleDriverDataSource ``` 在`application.yml`中配置如下内容: ```yaml spring: datasource: type: org.springframework.boot.jdbc.SimpleDriverDataSource ``` 通过上述配置,Spring Boot将不会使用HikariCP连接池,而是采用`SimpleDriverDataSource`直接创建数据库连接[^3]。 ### 2. **通过设置连接池参数限制连接池行为** 如果目标是关闭连接池的某些特性(例如最大连接数、空闲连接等),而不是完全禁用HikariCP,可以通过调整连接池的配置参数来实现。 在`application.properties`中,可以配置以下内容: ```properties spring.datasource.hikari.maximum-pool-size=0 spring.datasource.hikari.minimum-idle=0 ``` 在`application.yml`中,可以配置以下内容: ```yaml spring: datasource: hikari: maximum-pool-size: 0 minimum-idle: 0 ``` 上述配置会将HikariCP连接池的最大连接数和最小空闲连接数设置为0,从而达到关闭连接池的目的[^1]。 ### 3. **通过排除HikariCP依赖** 如果希望完全移除HikariCP依赖,可以通过修改项目的依赖管理文件(如`pom.xml`或`build.gradle`)来实现。 在Maven项目中,可以在`pom.xml`中排除HikariCP的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </exclusion> </exclusions> </dependency> ``` 在Gradle项目中,可以在`build.gradle`中排除HikariCP的依赖: ```gradle implementation('org.springframework.boot:spring-boot-starter-data-jpa') { exclude group: 'com.zaxxer', module: 'HikariCP' } ``` 通过排除HikariCP依赖,Spring Boot将不再自动配置HikariCP连接池。 ### 4. **自定义数据源配置** 如果需要进一步控制数据源行为,可以通过编写自定义的数据源配置类来实现。例如,可以通过编程方式创建一个不使用连接池的数据源。 示例代码如下: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.boot.jdbc.DataSourceBuilder; import javax.sql.DataSource; @Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { return DataSourceBuilder.create() .url("jdbc:mysql://localhost:3306/your_database") .username("your_username") .password("your_password") .build(); } } ``` 通过上述代码,可以完全绕过Spring Boot的默认数据源配置,并自定义数据源行为[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值