背景
前段时间在做一个数据中台的项目,系统用到了不同数据库中的数据。自己又不想手写JDBC连接,既然我有这个需求,那功能应该有人实现了,于是开始了网上搜了,搜索后发现基本都是讲读写分离、主备切换的,后面也查略了Mybatis-plus
的官网,里面有这个功能,但好像是我组件的版本之间不兼容,导致出现了一些奇怪的bug,比如:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
或者是无法访问javax.servlet.http.HttpServlet
亦或者是Cannot resolve reference to bean ‘sqlSessionFactory‘ while setting constructor argument; nested exce
。
总之,历经多重磨难总算是解决了
选择合适的组件版本能事半功倍。
组件版本
SpringBoot:3.0.0
JDK:19
MySQL:8.0.28
ClickHouse:21.4.6
clickhouse-jdbc:0.3.2-patch11
Mybatis-plus:3.5.7
dynamic-datasource:3.3.2
Druid:1.2.20
具体的pom.xml
文件如下:
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<!--springboot3 开始,JDK最低要求要11,该项目用的是19-->
<version>3.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- mysql-jdbc 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<!-- clickhouse-jdbc 驱动-->
<dependency>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.3.2-patch11</version>
<classifier>all</classifier>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--json web token-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.5</version>
</dependency>
<!-- lombok 依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- mybatis-plus 依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.7</version>
</dependency>
<!-- 动态配置多种数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!-- druid启动器的依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency>
</dependencies>
至于为什么选择这些版本的组件,我也不知道
标签:SpringBoot3.0,spring,数据源,springframework,bean,plus,org,import,com From: https://www.cnblogs.com/Mr-Sponge/p/18516306