spring boot设置poolMaximumCheckoutTime
时间: 2023-07-31 12:09:03 浏览: 101
在 Spring Boot 中,可以通过在 `application.properties` 或 `application.yml` 文件中设置连接池的相关属性来配置 `dataSource` 的连接池。其中,`poolMaximumCheckoutTime` 属性用于设置连接池中连接的最大存活时间。具体方法如下:
1. 在 `application.properties` 文件中添加如下配置:
```properties
# 数据源配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
# 连接池配置
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.max-lifetime=60000
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.pool-name=MyHikariCP
spring.datasource.hikari.pool-maximum-checkout-time=20000
```
在上面的配置中,`spring.datasource.hikari.pool-maximum-checkout-time` 属性设置了连接池中连接的最大存活时间为 20000 毫秒(即 20 秒)。
2. 在 Java 代码中,可以通过注入 `DataSource` 对象来获取连接池中的连接,如下:
```java
@Autowired
private DataSource dataSource;
public void someMethod() {
try (Connection connection = dataSource.getConnection()) {
// 使用连接执行 SQL 操作
} catch (SQLException e) {
// 处理异常
}
}
```
在使用 `getConnection()` 方法获取连接的过程中,如果连接池中没有可用的连接,会等待 `spring.datasource.hikari.connection-timeout` 毫秒,如果等待超时,则会抛出 `java.sql.SQLTimeoutException` 异常。而在连接使用完毕后,会根据 `spring.datasource.hikari.max-lifetime` 属性设置的最大生命周期来决定是否关闭连接。如果连接的存活时间超过了最大生命周期,则会被自动关闭。
阅读全文