项目场景:
项目中使用的是dynamic-datasource进行数据源管理,最近数据库压力越来越大,想使用sharding jdbc做一个轻量的读写分离,在配置时也遇到了一些问题,因此记录一下问题,
我这里主要遇到了两个问题:依赖冲突问题,以及datasouce注入失败引发的空指针问题。
github:dynamic-dadasource集成shardingjdbc动态数据源
gitee: dynamic-dadasource集成shardingjdbc动态数据源
基本依赖:
sharding jdbc使用的是5.1.1版本
dynamic-datasource使用 3.2.0版本
mybatis-plus使用 3.5.1版本
基本配置
pom依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>
<version>5.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-jdbc-core-spring-namespace</artifactId>
<version>5.1.1</version>