springboot实现多数据源且自动切换

  1. 在项目中添加依赖
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>版本</version>
</dependency>

可以去maven仓库选择适合自己的版本
2. 在配置文件中数据源的配置改成如下格式:配置就依此添加实际配置

spring:
  datasource:
    dynamic:
      datasource:
        数据源A:
          url: jdbcUrl
          driver-class-name: com.mysql.cj.jdbc.Driver
          username: username
          password: password
        数据源B:
          url: jdbcUrl
          driver-class-name: com.mysql.cj.jdbc.Driver
          username: username
          password: password
      primary: 数据源A
      hikari:
        connection-timeout: 30000
        min-idle: 5
        max-pool-size: 10
        idle-timeout: 600000
        max-lifetime: 1800000
        connection-test-query: select 1
  1. 简单的jdbcTemplate操作
DynamicRoutingDataSource dynamicRoutingDataSource = applicationContext.getBean(DynamicRoutingDataSource.class);
DataSource source = dynamicRoutingDataSource.getDataSource("数据源A");
JdbcTemplate template = new JdbcTemplate(source);
  1. 结合mybatisPlus
  • 添加相关依赖
<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.4.3</version>
        </dependency>
  • 编写Mapper接口
@DS("数据源A")
public interface AMapper extends BaseMapper<实体类> {
	//这样在执行mapper的方法时就会自动切换注解中的数据源

}
@DS("数据源B")
public interface BMapper extends BaseMapper<实体类> {
	//这样在执行mapper的方法时就会自动切换注解中的数据源

}

至此就可实现项目中的多数据源切换。最后说明一下,不知是否发现在上面配置中有一项是primary: 数据源A,作用是不指定数据源时默认的数据源。

posted @   一天天变坏  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示