SpringBoot配置Mybatis多数据源
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多数据源相关推荐
- SpringBoot配置mybatis多数据源(包含单数据源)最终解决方案,带源码
贴上我的github: https://github.com/mx342/testSpringbootMutipartDatasource.git 具体项目文件请查看github上面的项目 # tes ...
- springboot+jpa+mybatis 多数据源支持
springboot+jpa+mybatis 多数据源支持 配置dataSource import org.springframework.beans.factory.annotation.Quali ...
- springboot使用mybatis多数据源动态切换的实现
需求:项目使用了读写分离,或者数据进行了分库处理,我们希望在操作不同的数据库的时候,我们的程序能够动态的切换到相应的数据库,执行相关的操作. 首先,你需要一个能够正常运行的springboot项目,配 ...
- Springboot整合Mybatis多数据源配置
话不多说,直接进入正题.源码地址:https://github.com/SuriYesl/template.git 目录 一.数据库配置文件 二.配置类 主数据源配置类: 次数据源配置类: 三.项目结 ...
- springboot配置多个数据源(两种方式)
在我们的实际业务中可能会遇到:在一个项目里面读取多个数据库的数据来进行展示,spring对同时配置多个数据源是支持的. 本文中将展示两种方法来实现这个功能. springboot+mybatis 第一 ...
- SpringBoot配置Mybatis打印SQL
两种方式,一种基于SpringBoot自动装配通过yml文件直接配置,另一种是配置在mybatis的全局配置文件中. 但是两种方式不能同时配置,在SpringBoot V1.5.9以上版本惠报错: P ...
- springboot配置mybatis redis缓存
一.概述 首先来了解下mybatis 缓存,mybatis缓存分为一级缓存和二级缓存.一级缓存是默认开启的,无需其他配置操作,二级缓存则需要手动设置开启. 一级缓存原理: Mybatis的一级缓存是指 ...
- springboot和mybatis 多数据源
依赖和数据源配置 springboot依赖了spring4,需要依赖mybatis-spring,最新版本是1.2.2. 数据源相关的依赖: 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
- Springboot配置Redis多数据源
前言 Springboot默认支持一路redis,项目中有需求用到redis多数据源.本文仅基于Springboot进行多数据源配置,不依赖其它JAR包支持,理论可配置无限多的redis连接. 连接池 ...
最新文章
- Apache中KeepAlive 配置
- hdu5246 超级赛亚ACMer (百度之星初赛)(模拟)
- C#编程语言之常见的异常类型
- JavaSE(五)——修饰符、内部类、匿名内部类
- git命令之git mergetool vi非正常退出.swp删除不了的问题
- android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect)
- LeetCode 55. 跳跃游戏(贪心)
- Ghost网络克隆详细步骤教程
- 简单python脚本实例-30个Python 小例子,帮你快速上手Python
- 小说APP网站源码运营版+在线采集
- 【论文】(COPRA)Finding overlapping communities in networks by label propagation
- Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector论文解读
- 光机电一体化控制实训装置QY-JDYT06
- 什么是敏捷管理及scrum方法
- 几种ARM编译器及IDE开发环境
- 线性子空间的交、并、和、维数与直和等各种关系总结
- 小红书心灵捕手招募令,百亿流量扶持优质情感主播!
- ListIterator
- 线上引流获客渠道有哪些
- C语言的取反操作(15)