首页 > 其他分享 >SpringBoot3.0整合Mybatis-plus实现多数据源(重构类方式)

SpringBoot3.0整合Mybatis-plus实现多数据源(重构类方式)

时间:2024-10-30 17:47:22浏览次数:4  
标签:SpringBoot3.0 spring 数据源 springframework bean plus org import com

背景

前段时间在做一个数据中台的项目,系统用到了不同数据库中的数据。自己又不想手写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

相关文章

  • element-plus自定义表格根据内容合并行
    用el-table组件时,对于自定义表头,多级表头的使用在官网都有详细介绍。 在这次项目中用到了,自定义合并行,根据行内容相同的合并。前提是两个行要挨着。先看效果: 实现原理:原理很简单,重点在于组件span-method这个属性, 这个属性方法会一个单元格一个单元格去渲染,参......
  • FPGA图像处理仿真:生成数据源的方法
    免责声明:本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。读者在使用本文信息时,应自行验......
  • GLM - 4 - Plus:智谱 AI 最新推出的大型基座模型
    目录引言一、GLM-4-Plus简介二、GLM-4-Plus的技术优势1.卓越的语言能力2.多模态交互能力3.强大的推理能力三、GLM-4-Plus的功能特点1.丰富的知识储备2.准确的语言理解3.代码辅助能力四、GLM-4-Plus的应用场景1.智能客服2.内容创作3.教育辅助4.智能办公......
  • sqlplus可视化设置
    全局设置SETHEADINGOFF命令用于关闭查询结果的列标题(即字段名)的显示SETLINESIZE99999命令用于设置显示行的宽度SETPAGESIZE300命令用于设置每页可以显示的行数,这个设置对于控制查询结果的分页显示非常有用,特别是当你将结果输出到分页设备(如打印机)或当结果集非常大,你......
  • 1、前端项目创建(vue3 + vite + element-plus)
    vue3+vite+element-plus项目创建:1、npmcreatevite@latestdata-relationship----templatevue2、npminstall  安装依赖3、npmielement-plus 安装element-plus4、修改main.jsimport{createApp}from'vue'importAppfrom'./App.vue'importElemen......
  • 化学仿真软件:Aspen Plus二次开发_自定义模型开发
    自定义模型开发1.介绍AspenPlus是一种广泛应用于化工过程模拟和优化的软件工具。在许多情况下,标准模型库中的模型可能无法满足特定工艺的需求。因此,自定义模型开发成为提高仿真精度和效率的重要手段。本节将详细介绍如何在AspenPlus中开发自定义模型,包括模型开发的......
  • MybatisPlus入门(二)MybatisPlus入门案例
    一、SpringBoot整合MyBatisPlusSpringBoot整合MyBatisPlus入门案例:步骤一:创建新模块,选择Spring初始化,并配置模块相关基础信息。选择当前模块需要使用的技术集(仅保留JDBC)手动添加MyBatisPlus起步依赖:<dependency><groupId>com.baomidou</groupId><artifactId>myb......
  • MybatisPlus入门(一)MybatisPlus简介
    一、MyBatis简介MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率-官网:https://mybatis.plus/  https://mp.baomidou.com/MyBatisPlus特性:-无侵入:只做增强不做改变,不会对现有工程产生影响-强大的CRUD操作:内置通用Mapper,少......
  • chatGpt4.0Plus,Claude3最新保姆级教程开通升级
     如何使用WildCard服务注册Claude3随着Claude3的震撼发布,最强AI模型的桂冠已不再由GPT-4独揽。Claude3推出了三个备受瞩目的模型:Claude3Haiku、Claude3Sonnet以及Claude3Opus,每个模型都展现了卓越的性能与特色。其中,Claude3Opus更是实现了对GPT-4的全......
  • 04 springboot-工程搭建案例(多环境部署,数据源, Swagger, 国际化,工具类)
    项目搭建模板(多环境切换)springboot系列,最近持续更新中,如需要请关注如果你觉得我分享的内容或者我的努力对你有帮助,或者你只是想表达对我的支持和鼓励,请考虑给我点赞、评论、收藏。您的鼓励是我前进的动力,让我感到非常感激。文章目录1项目截图2pom.xml3多环境配......