diff --git a/src/main/java/io/jboot/db/datasource/DataSourceConfig.java b/src/main/java/io/jboot/db/datasource/DataSourceConfig.java index bff7ac1b790276ab7a723b5cbb3f55e6c1fdf66a..e7f916c13fa0d5a143306abfd83926a3c8f41db3 100644 --- a/src/main/java/io/jboot/db/datasource/DataSourceConfig.java +++ b/src/main/java/io/jboot/db/datasource/DataSourceConfig.java @@ -86,6 +86,10 @@ public class DataSourceConfig { private String dialectClass; private String activeRecordPluginClass; + /** + * HikariCP 连接探活间隔时间 4.0.1以上版本支持,建议设置为10分钟以内 + */ + private Long keepaliveTime; /** * 是否需要添加到映射 * 在一个表有多个数据源的情况下,应该只需要添加一个映射就可以了, @@ -456,4 +460,12 @@ public class DataSourceConfig { public List getTableInfos() { return tableInfos; } + + public Long getKeepaliveTime() { + return keepaliveTime; + } + + public void setKeepaliveTime(Long keepaliveTime) { + this.keepaliveTime = keepaliveTime; + } } diff --git a/src/main/java/io/jboot/db/datasource/HikariDataSourceFactory.java b/src/main/java/io/jboot/db/datasource/HikariDataSourceFactory.java index 92f3b26489f2e85ae5ee5c7874a74d772ead9c00..033a5a08acf7071bf22b2ac73086a3bae7b6bde8 100644 --- a/src/main/java/io/jboot/db/datasource/HikariDataSourceFactory.java +++ b/src/main/java/io/jboot/db/datasource/HikariDataSourceFactory.java @@ -56,6 +56,13 @@ public class HikariDataSourceFactory implements DataSourceFactory { hikariConfig.setConnectionInitSql(config.getConnectionInitSql()); } + if(config.getKeepaliveTime() != null){ + hikariConfig.setKeepaliveTime(config.getKeepaliveTime()); + } + + if(config.getValidationQuery() != null){ + hikariConfig.setConnectionTestQuery(config.getValidationQuery()); + } HikariDataSource dataSource = new HikariDataSource(hikariConfig);