SpringBoot现在是很多很多公司应用的后端框架,因为它搭建快,能更好、更快速的整合其他第三方。那么随着业务的不断扩展,业务量的增加,这时候就会牵扯到分库分表,虽然这个词听起来很熟悉,作为程序员也很容易理解,但是我想应该也有不少读者没接触过分库分表,今天我们不聊如何分库分表,而是聊SpringBoot如何整合多个数据源的事情。也就是如何接入不同的(多个)数据库。
我们直接开始,我们直接创建一个干净的SpringBoot应用。
<parent>
<dependency>
引入需要的maven坐标,那么我们这个工程就算搭建起来了,接下来就是配置,如何让SpringBoot整合两个Mysql数据源。首先我们在本地创建两个数据库test1和test2,同时在里面创建两个结构一样的表。
CREATE TABLE `user` (
在我们的工程中配置application.yml文件,将数据库的信息配置进去
spring:
接下来就是写我们的配置类了,这也是整合多个数据源最为关键的部分。
import org.apache.ibatis.session.SqlSessionFactory;
第二个数据源的配置
import org.apache.ibatis.session.SqlSessionFactory;
这样我们整个的配置其实就算好了,我们接下来写一个Controller类来测试一下,我们整合的数据源是不是真的可以用呢?
@RestController
我写了个两个Controller方法,分别访问不同的接口,我们来看下访问结果。
当我们访问user1的时候返回如下:
当我们访问user2的时候访问如下
看到这里其实我们的整个整合也就完成了, 虽然看起来很简单,但是你如果没写过确实会走很多坑,我刚整合的时候就遇到了很多坑,为了帮助大家重复采坑,分享出来供大家参考,另外我已经上传GitHub,大家可以直接拉下来跑。
下篇给大家分享一下,这几天在对接微信支付时,遇到的坑,已经微信支付的业务流程。
GitHub地址:
https://github.com/liangbintao/springboot\_datasources.git
更多内容请关注“一个程序员的成长”
【推荐阅读】
本文分享自微信公众号 - 一个程序员的成长(xiaozaibuluo)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。