HikariCP 多数据源配置 (手动)

1、maven依赖

  1. <dependency>
  2. <groupId>org.mybatis.spring.boot</groupId>
  3. <artifactId>mybatis-spring-boot-starter</artifactId>
  4. <version>1.3.2</version>
  5. </dependency>

2、资源配置文件 application.properties

这里只贴出两个

  1. server.port=8123
  2. # 测试库 test1
  3. spring.datasource.hikari.test1.jdbc-url=jdbc:mysql://47.98.253.2:3306/test1?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
  4. spring.datasource.hikari.test1.username=root
  5. spring.datasource.hikari.test1.password=Tlz19970905
  6. spring.datasource.hikari.test1.driver-class-name=com.mysql.cj.jdbc.Driver
  7. # 测试库 test2
  8. spring.datasource.hikari.test2.jdbc-url=jdbc:mysql://47.98.253.2:3306/test2?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
  9. spring.datasource.hikari.test2.username=root
  10. spring.datasource.hikari.test2.password=Tlz19970905
  11. spring.datasource.hikari.test2.driver-class-name=com.mysql.cj.jdbc.Driver

3、配置文件

这里只贴出一个 Test1DbSourceConfig,Test1DbSourceConfig2 同理

  1. @Configuration
  2. /**
  3. * basePackages : 指定 接口使用的数据源
  4. */
  5. @MapperScan(basePackages = "com.aaa.dynamic_data_mybatis.dao.test1", sqlSessionTemplateRef = "test1SqlSessionTemplate")
  6. public class Test1DbSourceConfig {
  7. @Bean(name = "test1DataSource")
  8. @ConfigurationProperties(prefix = "spring.datasource.hikari.test1")
  9. public DataSource testDataSource() {
  10. return DataSourceBuilder.create().build();
  11. }
  12. @Bean(name = "test1SqlSessionFactory")
  13. public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {
  14. SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
  15. bean.setDataSource(dataSource);
  16. //如果不想用 xml 这里可以注释掉
  17. bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/test1/*.xml"));
  18. return bean.getObject();
  19. }
  20. @Bean(name = "test1TransactionManager")
  21. public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
  22. return new DataSourceTransactionManager(dataSource);
  23. }
  24. @Bean(name = "test1SqlSessionTemplate")
  25. public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
  26. return new SqlSessionTemplate(sqlSessionFactory);
  27. }
  28. }