springboot多数据源配置

  今日在工做中遇到这样一个需求,咱们将另一个项目A的数据库中的数据同步过来,而且当数据库中的数据有更新时也要实时更新,第一时间想到了写一个定时器,经过多数据源从项目A的数据库中拉取数据,而后更新。项目使用的springboot+mybatis。关于多数据源的配置网上的教程有不少,这里就很少说了,贴上我参考的两个连接。spring

第一种,经过aop动态切换数据源数据库

https://blog.csdn.net/xiaosheng_papa/article/details/80218006springboot

第二种,经过指定不一样的dao层来操做不一样的数据库mybatis

https://blog.csdn.net/u012343297/article/details/78835185.net

  这两种方法我都亲测可行的。开始我采用的是第一种方法,由于第一种方法在我看来更优雅也更灵活。可是实际使用的时候遇到了一个问题,那就是我在定时器里面引用了一个service方法,这个service方法里面会同时操做两个数据库。当我在这个service方法中加上@Transactional注解后发现多数据源失效了,没法操做项目A的数据库。网上也没有搜到比较好的教程解决这个问题。而后我就采用了第二种方法,事务可以起做用,并且也可以同时操做多个数据库。算是成功解决了问题。blog

  至于第一种方法添加事务致使切换数据源失败的问题,网上教程都有说是能够解决的。目前项目进度比较紧,只能以完成任务为首要目的,等有时间闲下来以后会去试着解决这个问题。教程

相关文章
相关标签/搜索