SPRINGJPA
SPRINGBOOT
HIBERNATE
多數據源(ORACLE MYSQL)
都知道MYSQL有默認8小時斷開鏈接的機制,所以配置如下:
spring.datasource.primary.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.primary.minimum-idle=7
spring.datasource.primary.idle-timeout=180000
spring.datasource.primary.max-idle=10
spring.datasource.primary.max-wait=10000
spring.datasource.primary.min-idle=8
spring.datasource.primary.initial-size=15
spring.datasource.primary.maximum-pool-size=50
spring.datasource.primary.auto-commit=true
spring.datasource.primary.pool-name=MySqlHikariCP
spring.datasource.primary.max-lifetime=1900
spring.datasource.primary.connection-timeout=1800000
spring.datasource.primary.test-on-borrow=true
spring.datasource.primary.validation-query=SELECT 1
spring.datasource.primary.connection-test-query=SELECT 1
但是配置完後8小時後還是會關閉鏈接:
所以還需要配置BEAN 再設置一遍connection-test-query
/***
* 配置主數據源
* @return
*/
@Bean(name = "primaryDataSource")
@Qualifier("primaryDataSource")
@ConfigurationProperties(prefix="spring.datasource.primary")
@Primary
public DataSource primaryDataSource() {
HikariDataSource dataSource = DataSourceBuilder.create().type(com.zaxxer.hikari.HikariDataSource.class).build();
dataSource.setConnectionTestQuery(connectionTestQuery);
dataSource.setAutoCommit(isAutoCommit);
return dataSource;
}
至於爲何需要再設置一遍dataSource.setConnectionTestQuery(connectionTestQuery); 希望評論告知