整合多数据源

这里有两种,分包数据源和注解数据源,这里讲分包数据源

配置文件中新增两个数据源

spring.datasource.test1.driverClassName = com.mysql.jdbc.Driver

spring.datasource.test1.url = jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEncoding=utf-8

spring.datasource.test1.username = root

spring.datasource.test1.password = root

spring.datasource.test2.driverClassName = com.mysql.jdbc.Driver

spring.datasource.test2.url = jdbc:mysql://localhost:3306/test02?useUnicode=true&characterEncoding=utf-8

spring.datasource.test2.username = root

spring.datasource.test2.password = root

配置文件中新增两个数据源

@Configuration// 注册到springboot容器中

@MapperScan(basePackages = "com.itmayiedu.user1", sqlSessionFactoryRef = "test1SqlSessionFactory")

publicclass DataSource1Config {

 

      /**

       *

       * @methodDesc: 功能描述:(配置test1数据库)

       * @param: @return

       * @createTime:2017917下午3:16:44

       * @returnType:@return DataSource

       */

      @Bean(name = "test1DataSource")

      @Primary

      @ConfigurationProperties(prefix = "spring.datasource.test1")

      public DataSource testDataSource() {

            return DataSourceBuilder.create().build();

      }

 

      /**

       *

       * @methodDesc: 功能描述:(test1 sql会话工厂)

       * @param: @param

       *             dataSource

       * @param: @return

       * @param: @throws

       *             Exception

       * @createTime:2017917下午3:17:08

       * @returnType:@param dataSource

       * @returnType:@return

       * @returnType:@throws Exception SqlSessionFactory

       */

      @Bean(name = "test1SqlSessionFactory")

      @Primary

      public SqlSessionFactory testSqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource)

                  throws Exception {

            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

            bean.setDataSource(dataSource);

//          bean.setMapperLocations(

//                     new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/test1/*.xml"));

            returnbean.getObject();

      }

 

      /**

       *

       * @methodDesc: 功能描述:(test1 事物管理)

       * @param: @param

       *             dataSource

       * @param: @return

       * @param: @throws

       *             Exception

       * @createTime:2017917下午3:17:08

       * @returnType:@param dataSource

       * @returnType:@return

       * @returnType:@throws Exception SqlSessionFactory

       */

      @Bean(name = "test1TransactionManager")

      @Primary

      public DataSourceTransactionManager testTransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {

            returnnew DataSourceTransactionManager(dataSource);

      }

 

      @Bean(name = "test1SqlSessionTemplate")

      public SqlSessionTemplate testSqlSessionTemplate(

                  @Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {

            returnnew SqlSessionTemplate(sqlSessionFactory);

      }

 

}

创建分包Mapper

public interface User1Mapper {

@Insert("insert into users values(null,#{name},#{age});")

public int addUser(@Param("name") String name, @Param("age") Integer age);

}

启动项目

@ComponentScan(basePackages = "com.itmayiedu")

@EnableAutoConfiguration

publicclass App {

      publicstaticvoid main(String[] args) {

            SpringApplication.run(App.class, args);

      }

}

SpringBoot-整合多数据源的更多相关文章

  1. springBoot整合多数据源

    springBoot整合相关 1:springBoot整合多数据源: 应用场景:     项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库. 工具/版本: jdk1. ...

  2. springboot整合多数据源解决分布式事务

    一.前言        springboot整合多数据源解决分布式事务.             1.多数据源采用分包策略              2.全局分布式事务管理:jta-atomikos. ...

  3. SpringBoot整合多数据源实现

    项目架构 1.导入相关依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac ...

  4. springboot整合多数据源及事物

    有两种方式:一种是分包的方式.一种是加注解的方式(@DataSource(ref="")). 分包方式:项目结构图如下: 分为com.itmayiedu.test01.com.it ...

  5. SpringBoot整合Druid数据源

    关于SpringBoot数据源请参考我上一篇文章:https://www.cnblogs.com/yueshutong/p/9409295.html 一:Druid介绍 1. Druid是什么? Dr ...

  6. SpringBoot整合Mybatis【非注解版】

    接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 ​ 选择Spring Initializr,配置JDK版本 ​ 输入项目名 ​ 选择构建web项目所需的state ...

  7. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  8. SpringBoot整合阿里Druid数据源及Spring-Data-Jpa

    SpringBoot整合阿里Druid数据源及Spring-Data-Jpa https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=224 ...

  9. SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)

    1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...

  10. SpringBoot整合Mybatis多数据源 (AOP+注解)

    SpringBoot整合Mybatis多数据源 (AOP+注解) 1.pom.xml文件(开发用的JDK 10) <?xml version="1.0" encoding=& ...

随机推荐

  1. 【转载】Ubuntu安装之,硬盘分区

    关于分区 如果你只是简单地想用上Ubuntu,可以这样操作:1)如果你是直接将整个硬盘都用来装Ubuntu,机器上没有需要保存的数据,或者已经做好备份的情况下,可以直接在Ubuntu分区时选择“向导─ ...

  2. 前端分页插件pagination

    摘要: 最近在开发项目中又用到了前端分页,以前也做过,为了方便以后使用所以将他封装成第三方插件,不依赖任何库.网上已经有很多插件,问什么还要自己造轮子? 自己写的扩展性高 不依赖任何库 作为一次技术沉 ...

  3. [Bayes] Point --> Line: Estimate "π" by R

    “半个数学系 + 一个计算机科学系 = Deep Learning初级班” simulation = function(sampleSize){ c = rep(0,sampleSize) // &l ...

  4. swagger netframework webapi

    参考:https://blog.csdn.net/wjk343977868/article/details/47086137

  5. Linux下跑程序,防止命令终端(断网,断电)

    有时候我们在服务器上跑程序,会发现当我们离开窗口时,正在执行的程序中断了,这让人非常郁闷.下面介绍防止程序中断的方法: 新建一个名为yourname的Screen窗口: screen -S yourn ...

  6. C# Linq删除父级的同时删除子级

    之前使用Include获取外键对象列表后,进行删除,一直报错操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null...后面还有一串.尝试了几种方式,比如将u.AlbumList=null ...

  7. fs项目---->cron框架的学习(一)

    Cron是一种允许您按计划执行某些内容的工具.这通常使用cron语法来完成.我们允许您在计划作业触发时执行函数.我们还允许您使用子进程执行javascript进程外部的作业.此外,这个库超出了基本的c ...

  8. 九、K3 WISE 开发插件《工业单据老单序时薄插件工具栏按钮开发实例》

    =============================== 目录: 1.添加工具栏按钮 2.查询被添加工具栏按钮的业务单据的FMenuID和FID 3.添加工具栏按钮和业务单据的映射关系 4.工具 ...

  9. print 与标准输出

    print会自动添加换行符 其它的,没什么区别.有时候为了使用灵活,才会这么用. 例如你想把print的内容写向一下log文件,你可以这么做 stdout_bk = sys.stdout #备份一下标 ...

  10. db first和code first

    1. db first 是现有数据库,再写代码.根据数据库的表生成类. django里面:python manage.py  inspectdb 2. code first 是先写代码,后创建数据库. ...