Spring Boot MyBatis Plus 配置数据源详解

这篇具有很好参考价值的文章主要介绍了Spring Boot MyBatis Plus 配置数据源详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


mybatis plus单数据源配置,微服务架构设计,spring boot,mybatis,后端

🎉欢迎来到架构设计专栏~Spring Boot MyBatis Plus 配置数据源详解


  • ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹
  • ✨博客主页:IT·陈寒的博客
  • 🎈该系列文章专栏:架构设计
  • 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习
  • 🍹文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • 📜 欢迎大家关注! ❤️

Spring Boot与MyBatis Plus的结合,为Java开发者提供了一种简便而高效的持久化解决方案。其中,数据源配置是整合过程中的重要一环。本文将深入探讨如何在Spring Boot项目中配置MyBatis Plus所使用的数据源,以及一些相关的拓展和分析。

mybatis plus单数据源配置,微服务架构设计,spring boot,mybatis,后端

1. 引入 MyBatis Plus 依赖

首先,在pom.xml中引入MyBatis Plus的相关依赖:

<!-- MyBatis Plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.1</version>
</dependency>

这个依赖将自动导入MyBatis Plus所需的其他依赖,简化了项目的配置。

2. 数据源配置

在Spring Boot中,数据源的配置通常位于application.propertiesapplication.yml文件中。下面是一个简单的数据源配置示例:

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 连接池配置(可选)
spring.datasource.hikari.maximum-pool-size=10

在这个配置中,我们指定了数据库的URL、用户名、密码和驱动类。如果你希望使用连接池,可以添加连接池的相关配置,这里以Hikari连接池为例。

3. MyBatis Plus 配置

MyBatis Plus的配置通常需要继承MybatisPlusConfigurerAdapter类,并通过@Configuration注解标记为配置类。以下是一个简单的配置示例:

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

@Configuration
@MapperScan("com.example.mapper") // 扫描 Mapper 接口所在的包
public class MybatisPlusConfig {

    @Bean
    public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean(DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/*.xml"));
        sessionFactoryBean.setConfiguration(mybatisConfiguration());
        sessionFactoryBean.setPlugins(new Interceptor[]{paginationInterceptor()});

        return sessionFactoryBean;
    }

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    private MybatisConfiguration mybatisConfiguration() {
        MybatisConfiguration configuration = new MybatisConfiguration();
        configuration.setMapUnderscoreToCamelCase(true);
        configuration.setCacheEnabled(false);

        return configuration;
    }
}

在这个配置类中,我们使用@MapperScan注解指定了Mapper接口的扫描路径,并通过@Bean注解配置了MybatisSqlSessionFactoryBean。此外,我们还配置了分页插件PaginationInterceptor以及一些MyBatis的基本配置,比如下划线转驼峰、关闭缓存等。

4. 动态数据源配置(多数据源)

在一些复杂的项目中,可能需要配置多个数据源以满足不同业务需求。Spring Boot通过AbstractRoutingDataSource提供了动态数据源的支持。以下是一个简单的多数据源配置示例:

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

public class DynamicDataSource extends AbstractRoutingDataSource {

    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();

    public DynamicDataSource(DataSource defaultDataSource, Map<Object, Object> targetDataSources) {
        super.setDefaultTargetDataSource(defaultDataSource);
        super.setTargetDataSources(new HashMap<>(targetDataSources));
       

 super.afterPropertiesSet();
    }

    public static void setDataSource(String dataSourceKey) {
        CONTEXT_HOLDER.set(dataSourceKey);
    }

    public static String getDataSource() {
        return CONTEXT_HOLDER.get();
    }

    public static void clearDataSource() {
        CONTEXT_HOLDER.remove();
    }

    @Override
    protected Object determineCurrentLookupKey() {
        return getDataSource();
    }
}

上述代码中,我们继承了AbstractRoutingDataSource,并通过ThreadLocal来保存当前数据源的key。在具体的业务中,通过调用DynamicDataSource.setDataSource("dataSourceKey")来切换数据源。

5. 小结

通过以上步骤,我们完成了在Spring Boot项目中配置MyBatis Plus数据源的过程。首先引入MyBatis Plus的相关依赖,然后在application.propertiesapplication.yml中配置数据源,接着通过一个配置类进行MyBatis Plus的相关配置。最后,如果需要多数据源支持,可以使用AbstractRoutingDataSource实现动态数据源的切换。

mybatis plus单数据源配置,微服务架构设计,spring boot,mybatis,后端

在实际项目中,根据具体的业务需求,可能还需要更详细的配置和优化。希望本文的内容对你在Spring Boot项目中使用MyBatis Plus提供一些帮助。


🧸结尾 ❤️ 感谢您的支持和鼓励! 😊🙏
📜您可能感兴趣的内容:

  • 【Java面试技巧】Java面试八股文 - 掌握面试必备知识(目录篇)
  • 【Java学习路线】2023年完整版Java学习路线图
  • 【AIGC人工智能】Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么
  • 【Java实战项目】SpringBoot+SSM实战:打造高效便捷的企业级Java外卖订购系统
  • 【数据结构学习】从零起步:学习数据结构的完整路径

mybatis plus单数据源配置,微服务架构设计,spring boot,mybatis,后端文章来源地址https://www.toymoban.com/news/detail-811203.html

到了这里,关于Spring Boot MyBatis Plus 配置数据源详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用 Mybatis-Plus 的动态数据源实现多数据源配置

    目录 一、导入依赖 二、Application.yaml配置文件 三、切换数据源 四、其他方法 4.1 配置多个数据源 4.2 定义Datasource和EntityManager 4.3 在需要使用数据源的地方注入不同的EntityManager 官网:https://baomidou.com/pages/a61e1b/#dynamic-datasource 默认是使用配置文件中master参数设置的数据库。

    2024年02月13日
    浏览(43)
  • Springboot 配置动态多数据源(Mybatis-plus)

    前言:在项目中需要用到动态切换多数据源,查阅Mybatis-plus文档得知可以通过@DS注解,但该方法主要针对不同内容的数据源,而目前场景是相同内容的数据库需要在运行时根据请求头动态切换,因此文档方法不适用。 注意,不要使用dynamic-datasource-spring-boot-starter依赖包。 应用

    2024年02月12日
    浏览(42)
  • 手搭手入门Mybatis-Plus配置多数据源

    https://baomidou.com/ 为简化开发而生 MyBatis-Plus(opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 无侵入 :只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小 :启动即会自

    2024年02月07日
    浏览(41)
  • grpc + springboot + mybatis-plus 动态配置数据源

    前言 这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 1.1 项目初始化 项目初始化的时候会调用com.baomidou.dynamic.datasource.DynamicRoutingDataSource对象的addDataSource方法添加数据源,数据源存进dataSourceMap中。 1.2 接口请求时候 进行数据操作时,

    2024年02月09日
    浏览(42)
  • SpringBoot整合Mybatis-Plus、Druid配置多数据源

    目录 1.初始化项目 1.1.初始化工程 1.2.添加依赖 1.3.配置yml文件 1.4.Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹 1.5.配置使用数据源 1.5.1.注解方式 1.5.2.基于AOP手动实现多数据源原生的方式 2.结果展示 Mybatis-Plus:简介 | MyBatis-Plus (baomidou.com) 在正式开始之前,先初始

    2024年02月11日
    浏览(48)
  • Dynamic DataSource 多数据源配置【 Springboot + DataSource + MyBatis Plus + Druid】

    MybatisPlus多数据源配置主要解决的是多数据库连接和切换的问题。在一些大型应用中,由于数据量的增长或者业务模块的增多,可能需要访问多个数据库。这时,就需要配置多个数据源。 2.1.1、引用依赖 2.1.2、application.yml 配置 2.1.3、通用配置类 2.1.4、使用方式 这里便不过多的

    2024年02月03日
    浏览(48)
  • java_Springboot_Mybatis-Plus_自定义多数据源MybatisSqlSessionFactoryBean配置

    需要在服务中集成表结构维护的功能,维护表结构就需要使用具有执行DDL脚本权限的账号。 为了保证系统的安全性,考虑在工程中配置多个数据源引入不同权限账号,高权限账号只在特定逻辑中使用,其它默认业务使用低权限账号。 加入新的数据源不能影响已有的功能,保

    2024年01月16日
    浏览(45)
  • Spring Boot 配置双数据源

    Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive. happy for hardess to solve denpendies. 需求: 1.基本步骤 添加依赖 添加 Spring Boot 和数据库驱动的依赖 配置数据源 在 application.properties 或 application.yml 中分别配

    2024年01月22日
    浏览(65)
  • Spring Boot配置多个Kafka数据源

    application.properties配置文件如下 1.第一个kakfa 2.第二个kakfa 备注: 生产者消费者代码参考链接,开发同学需要以实际情况按要求自己变更下代码即可: Spring Boot 集成多个 Kafka_springboot集成多个kafka_//承续缘_纪录片的博客-CSDN博客

    2024年02月07日
    浏览(75)
  • 【Java】Spring Boot配置动态数据源

    1.1 创建动态数据源 通过实现Spring提供的AbstractRoutingDataSource类,可以实现自己的数据源选择逻辑,从而可以实现数据源的动态切换。 1.2 创建动态数据源配置类 跟配置静态多数据源一样,需要手动配置下面的三个 Bean,只不过DynamicDataSource类的targetDataSources是空的。 1.3 创建动

    2024年02月09日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包