HikariCP 多数据源配置 (手动)
1、maven依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
2、资源配置文件 application.properties
这里只贴出两个
server.port=8123
# 测试库 test1
spring.datasource.hikari.test1.jdbc-url=jdbc:mysql://47.98.253.2:3306/test1?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
spring.datasource.hikari.test1.username=root
spring.datasource.hikari.test1.password=Tlz19970905
spring.datasource.hikari.test1.driver-class-name=com.mysql.cj.jdbc.Driver
# 测试库 test2
spring.datasource.hikari.test2.jdbc-url=jdbc:mysql://47.98.253.2:3306/test2?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
spring.datasource.hikari.test2.username=root
spring.datasource.hikari.test2.password=Tlz19970905
spring.datasource.hikari.test2.driver-class-name=com.mysql.cj.jdbc.Driver
3、配置文件
这里只贴出一个 Test1DbSourceConfig,Test1DbSourceConfig2 同理
@Configuration
/**
* basePackages : 指定 接口使用的数据源
*/
@MapperScan(basePackages = "com.aaa.dynamic_data_mybatis.dao.test1", sqlSessionTemplateRef = "test1SqlSessionTemplate")
public class Test1DbSourceConfig {
@Bean(name = "test1DataSource")
@ConfigurationProperties(prefix = "spring.datasource.hikari.test1")
public DataSource testDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "test1SqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
//如果不想用 xml 这里可以注释掉
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/test1/*.xml"));
return bean.getObject();
}
@Bean(name = "test1TransactionManager")
public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "test1SqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}