多数据源下配置shardingjdbc,导致主数据源失效的场景
配置主数据源和通过shardingjdbc进行分表配置
本人在此次分表过程中遇到了这样的事情,主业务都在主数据源上,分表的数据源和主数据源不是同一个数据库。一切配置好后,分表插入数据也没有问题,后面测试主业务场景时,发现主数据源失效,楞是花了我大半天时间才找到原因,在这里分享下,希望你们不会遇到。
先看主要配置信息
- 引入需要的依赖
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
<!--依赖dynamic-datasource-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-core-common</artifactId>
<version>4.0.0-RC1</version>
</dependency>
- 进行数据源配置
spring:
application:
# 应用名称
name: weygy
profiles:
# 环境配置
active: dev
main:
allow-bean-definition-overriding: true
datasource:
dynamic:
primary: master
datasource:
master:
username: root
password: root
url: jdbc:mysql://127.0.0.1

在配置ShardingJDBC进行数据库分表后,主数据源在进行主业务操作时失效。问题源于数据源配置和依赖版本。通过升级ShardingJDBC依赖至4.1版本,解决了主数据源未被正确识别的问题。在新版本中,主数据源操作无需额外注解,分表数据源操作需添加@DS(sharding)注解。

5334

被折叠的 条评论
为什么被折叠?



