SpringBoot配置Mybatis多数据源

配置多数据源可以将springboot自动装配的数据源给关闭。
1、添加pom文件,只需要添加数据源驱动和mybatis包

        <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency>

2、添加配置fkSqlSessionFactory

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;@Configuration
//扫描mapper接口
@MapperScan(basePackages ="com.hua.mapper.fk",sqlSessionFactoryRef = "fkSqlSessionFactory")
public class FkMybatisConfig {//配置数据源@Bean("fkDataSource")@ConfigurationProperties(prefix = "spring.datasource.fk")public DataSource fkDataSource() {return DataSourceBuilder.create().build();}//生成sqlSessionFactory@Primary@Bean(name = "fkSqlSessionFactory")public SqlSessionFactory fkSqlSessionFactory() throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();//扫描xml文件,相当于我们自动装配时候的//mybatis.mapper-locations=classpath:/mapper/fk/*Mapper.xmlbean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/fk/*Mapper.xml")); //添加数据源bean.setDataSource(fkDataSource());bean.setVfs(SpringBootVFS.class);return bean.getObject();}//生成sqlSessionTemplate@Primary@Bean("fk")public SqlSessionTemplate fkSqlSessionTemplate(@Qualifier("fkSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}
}
@Configuration
@MapperScan(basePackages ="com.hua.mapper.lk",sqlSessionFactoryRef = "lkSqlSessionFactory")
public class LkMybatisConfig {@Bean("lkDataSource")@ConfigurationProperties(prefix = "spring.datasource.lk")public DataSource fkDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "lkSqlSessionFactory")public SqlSessionFactory fkSqlSessionFactory() throws Exception {SqlSessionFactoryBean bean = new SqlSessionFactoryBean();bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/lk/*Mapper.xml"));bean.setDataSource(fkDataSource());bean.setVfs(SpringBootVFS.class);return bean.getObject();}@Bean("lk")public SqlSessionTemplate fkSqlSessionTemplate(@Qualifier("lkSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}
}

这两个配置文件,将com.hua.mapper.lk接口和classpath:/mapper/lk/*Mapper.xml的xml文件绑定,将com.hua.mapper.fk接口和classpath:/mapper/fk/*Mapper.xml的xml文件绑定,形成两个包下独立的数据源

3、新建mapper接口包
这个是mapper接口的包路径,根据我们的配置文件fk和lk分别对应不同的数据源
4、新建xml文件
这里是xml文件的包路径,和上面的接口对应

结语:这种多数据源一般加的不多这种方式还是比较方便的。如果很大型的项目,动态数据源可能更加方便一点

SpringBoot配置Mybatis多数据源相关推荐

  1. SpringBoot配置mybatis多数据源(包含单数据源)最终解决方案,带源码

    贴上我的github: https://github.com/mx342/testSpringbootMutipartDatasource.git 具体项目文件请查看github上面的项目 # tes ...

  2. springboot+jpa+mybatis 多数据源支持

    springboot+jpa+mybatis 多数据源支持 配置dataSource import org.springframework.beans.factory.annotation.Quali ...

  3. springboot使用mybatis多数据源动态切换的实现

    需求:项目使用了读写分离,或者数据进行了分库处理,我们希望在操作不同的数据库的时候,我们的程序能够动态的切换到相应的数据库,执行相关的操作. 首先,你需要一个能够正常运行的springboot项目,配 ...

  4. Springboot整合Mybatis多数据源配置

    话不多说,直接进入正题.源码地址:https://github.com/SuriYesl/template.git 目录 一.数据库配置文件 二.配置类 主数据源配置类: 次数据源配置类: 三.项目结 ...

  5. springboot配置多个数据源(两种方式)

    在我们的实际业务中可能会遇到:在一个项目里面读取多个数据库的数据来进行展示,spring对同时配置多个数据源是支持的. 本文中将展示两种方法来实现这个功能. springboot+mybatis 第一 ...

  6. SpringBoot配置Mybatis打印SQL

    两种方式,一种基于SpringBoot自动装配通过yml文件直接配置,另一种是配置在mybatis的全局配置文件中. 但是两种方式不能同时配置,在SpringBoot V1.5.9以上版本惠报错: P ...

  7. springboot配置mybatis redis缓存

    一.概述 首先来了解下mybatis 缓存,mybatis缓存分为一级缓存和二级缓存.一级缓存是默认开启的,无需其他配置操作,二级缓存则需要手动设置开启. 一级缓存原理: Mybatis的一级缓存是指 ...

  8. springboot和mybatis 多数据源

    依赖和数据源配置 springboot依赖了spring4,需要依赖mybatis-spring,最新版本是1.2.2. 数据源相关的依赖: 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  9. Springboot配置Redis多数据源

    前言 Springboot默认支持一路redis,项目中有需求用到redis多数据源.本文仅基于Springboot进行多数据源配置,不依赖其它JAR包支持,理论可配置无限多的redis连接. 连接池 ...

最新文章

  1. Apache中KeepAlive 配置
  2. hdu5246 超级赛亚ACMer (百度之星初赛)(模拟)
  3. C#编程语言之常见的异常类型
  4. JavaSE(五)——修饰符、内部类、匿名内部类
  5. git命令之git mergetool vi非正常退出.swp删除不了的问题
  6. android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect)
  7. LeetCode 55. 跳跃游戏(贪心)
  8. Ghost网络克隆详细步骤教程
  9. 简单python脚本实例-30个Python 小例子,帮你快速上手Python
  10. 小说APP网站源码运营版+在线采集
  11. 【论文】(COPRA)Finding overlapping communities in networks by label propagation
  12. Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector论文解读
  13. 光机电一体化控制实训装置QY-JDYT06
  14. 什么是敏捷管理及scrum方法
  15. 几种ARM编译器及IDE开发环境
  16. 线性子空间的交、并、和、维数与直和等各种关系总结
  17. 小红书心灵捕手招募令,百亿流量扶持优质情感主播!
  18. ListIterator
  19. 线上引流获客渠道有哪些
  20. C语言的取反操作(15)

热门文章

  1. 【Ubuntu】Ubuntu16.04的主题和终端美化
  2. 5.代码C语言程序设计
  3. 关于nanopc debian系统的安装
  4. 微信支付与微信转账的区别
  5. github_adi官方例程使用指南
  6. 【Java】SpringBoot不扫描某个包 | 排除组件 | 排除类
  7. V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动
  8. 教你如何轻松做百度文库推广引流?
  9. 如何关闭iOS系统自动更新提示?
  10. Java入门part6--继承和多态