SpringBoot集成mybatis使用HikariCP自定义多数据源
之前分享了SpringBoot集成mybatis使用durid自定义多数据源配置,因为spring boot的版本是1.5.9,所以采用了durid连接池进行配置,后来由于项目升级为2.+,而spring boot的2.+版本集成了Hikari作为连接池,所以研究了一下写法。
1.首先配置application.properties
datasource.local.jdbc-url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test1
datasource.local.username=root
datasource.local.password=123
datasource.local.maximum-pool-size=5
datasource.remote.jdbc-url=jdbc:mysql://127.0.0.1:3306/test3?serverTimezone=GMT%2B8&characterEncoding=utf8&useUnicode=true&useSSL=false
datasource.remote.username=root
datasource.remote.password=123456
在Spring boot 2.+的版本中,不需要配置driverClassName,会根据url来检测加载哪个driverClassName,关于连接池的一些配置,属性名可参照HikariConfig。
public class HikariConfig implements HikariConfigMXBean
{
private static final long CONNECTION_TIMEOUT = SECONDS.toMillis(30);
private static final long VALIDATION_TIMEOUT = SECONDS.toMillis(5);
private static final long IDLE_TIMEOUT = MINUTES.toMillis(10);
private static final long MAX_LIFETIME = MINUTES.toMillis(30);
private static final int DEFAULT_POOL_SIZE = 10;
private static boolean unitTest = false;
// Properties changeable at runtime through the HikariConfigMXBean
//
private volatile long connectionTimeout;
private volatile long validationTimeout;
private volatile long idleTimeout;
private volatile long leakDetectionThreshold;
private volatile long maxLifetime;
private volatile int maxPoolSize;
private volatile int minIdle;
private volatile String username;
private volatile String password;
...
2. 配置DataSource
@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties("datasource.local")
public DataSource localDataSource(){
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean
@ConfigurationProperties("datasource.remote")
public DataSource remoteDataSource(){
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
}
不需要进行逐个配置,只需要将前缀配置好,就会自动加载了。
3.mybatis配置
mybatis配置参见:SpringBoot集成mybatis使用durid自定义多数据源配置,没有变化。