相关的依赖

yml配置

java配置类:

  1. DataSourceConfigurerjava
  1. /**
  2. * Created by zhiqi.shao on 2017/11/20.
  3. */
  4. @Configuration
  5. public class DataSourceConfigurer {
  6.  
  7. @Bean
  8. @ConfigurationProperties("datasource.order")
  9. public DataSourceProperties orderDataSourceProperties() {
  10. return new DataSourceProperties();
  11. }
  12.  
  13. @Bean
  14. @ConfigurationProperties("datasource.order")
  15. public DataSource orderDataSource() {
  16. return orderDataSourceProperties().initializeDataSourceBuilder().build();
  17. }
  18.  
  19. @Bean
  20. @Primary
  21. @ConfigurationProperties("datasource.order-query")
  22. public DataSourceProperties orderQueryDataSourceProperties() {
  23. return new DataSourceProperties();
  24. }
  25.  
  26. @Bean
  27. @Primary
  28. @ConfigurationProperties("datasource.order-query")
  29. public DataSource orderQueryDataSource() {
  30. return orderQueryDataSourceProperties().initializeDataSourceBuilder().build();
  31. }
  32.  
  33. }
  1. OrderDataSourceConfigurer.java
  1. /**
  2. * Created by zhiqi.shao on 2017/11/20.
  3. */
  4. @Configuration
  5. @EnableTransactionManagement
  6. @EnableJpaRepositories(
  7. entityManagerFactoryRef = "entityManagerFactoryOrder",
  8. transactionManagerRef = "transactionManagerOrder",
  9. basePackages = {"com.hpe.ordersynchro.ordersEntity"}
  10. )
  11. public class OrderDataSourceConfigurer {
  12.  
  13. @Autowired
  14. @Qualifier("orderDataSource")
  15. private DataSource orderDataSource;
  16.  
  17. @Bean(name = "entityManagerOrder")
  18. public EntityManager entityManager(EntityManagerFactoryBuilder builder){
  19. return entityManagerFactoryOrder(builder).getObject().createEntityManager();
  20. }
  21.  
  22. @Bean(name= "entityManagerFactoryOrder")
  23. public LocalContainerEntityManagerFactoryBean entityManagerFactoryOrder(EntityManagerFactoryBuilder builder){
  24. return builder
  25. .dataSource(orderDataSource)
  26. .properties(getVendorProperties(orderDataSource))
  27. .packages(new String[]{"com.hpe.ordersynchro.ordersEntity"})
  28. .persistenceUnit("orderPersistenceUnit")
  29. .build();
  30.  
  31. }
  32.  
  33. @Autowired
  34. private JpaProperties jpaProperties;
  35.  
  36. private Map<String,String> getVendorProperties(DataSource dataSource){
  37. return jpaProperties.getHibernateProperties(dataSource);
  38. }
  39.  
  40. @Bean(name ="transactionManagerOrder")
  41. public PlatformTransactionManager transactionManagerOrder(EntityManagerFactoryBuilder builder){
  42. return new JpaTransactionManager((entityManagerFactoryOrder(builder).getObject()));
  43. }
  1. OrderQueryDataSourceConfigurer.java
  1. /**
  2. * Created by zhiqi.shao on 2017/11/20.
  3. */
  4. @Configuration
  5. @EnableTransactionManagement
  6. @EnableJpaRepositories(
  7. entityManagerFactoryRef = "entityManagerFactoryOrderQuery",
  8. transactionManagerRef = "transactionManagerOrderQuery",
  9. basePackages = {"com.hpe.ordersynchro.ordersQueryEntity"}
  10. )
  11. public class OrderQueryDataSourceConfigurer {
  12.  
  13. @Autowired
  14. @Qualifier("orderQueryDataSource")
  15. private DataSource orderQueryDataSource;
  16.  
  17. @Primary
  18. @Bean(name = "entityManagerOrderQuery")
  19. public EntityManager entityManager(EntityManagerFactoryBuilder builder){
  20. return entityManagerFactoryOrderQuery(builder).getObject().createEntityManager();
  21. }
  22.  
  23. @Primary
  24. @Bean(name= "entityManagerFactoryOrderQuery")
  25. public LocalContainerEntityManagerFactoryBean entityManagerFactoryOrderQuery(EntityManagerFactoryBuilder builder){
  26. return builder
  27. .dataSource(orderQueryDataSource)
  28. .properties(getVendorProperties(orderQueryDataSource))
  29. .packages(new String[]{"com.hpe.ordersynchro.ordersQueryEntity"})
  30. .persistenceUnit("orderQueryPersistenceUnit")
  31. .build();
  32.  
  33. }
  34.  
  35. @Autowired
  36. private JpaProperties jpaProperties;
  37.  
  38. private Map<String,String> getVendorProperties(DataSource dataSource){
  39. return jpaProperties.getHibernateProperties(dataSource);
  40. }
  41.  
  42. @Primary
  43. @Bean(name ="transactionManagerOrderQuery")
  44. public PlatformTransactionManager transactionManagerOrderQuery(EntityManagerFactoryBuilder builder){
  45. return new JpaTransactionManager((entityManagerFactoryOrderQuery(builder).getObject()));
  46. }
  47.  
  48. }

注解:加了@primary就是默认数据源

分别是jpa和jpa对应实体的位置,我这里还是将它们放在了一个包下,所以上面配置的扫描路劲相同:

springboot 多数据源的实现的更多相关文章

  1. Spring-Boot配置文件数据源配置项

    Spring-Boot配置文件数据源配置项(常用配置项为红色) 参数 介绍 spring.datasource.continue-on-error = false 初始化数据库时发生错误时,请勿停止 ...

  2. SpringBoot多数据源动态切换数据源

    1.配置多数据源 spring: datasource: master: password: erp_test@abc url: jdbc:mysql://127.0.0.1:3306/M201911 ...

  3. SpringBoot学习笔记(三):SpringBoot集成Mybatis、SpringBoot事务管理、SpringBoot多数据源

    SpringBoot集成Mybatis 第一步我们需要在pom.xml里面引入mybatis相关的jar包 <dependency> <groupId>org.mybatis. ...

  4. 搞定SpringBoot多数据源(1):多套源策略

    目录 1. 引言 2. 运行环境 3. 多套数据源 3.1 搭建 Spring Boot 工程 3.1.1 初始化 Spring Boot 工程 3.1.2 添加 MyBatis Plus 依赖 3. ...

  5. 搞定SpringBoot多数据源(2):动态数据源

    目录 1. 引言 2. 动态数据源流程说明 3. 实现动态数据源 3.1 说明及数据源配置 3.1.1 包结构说明 3.1.2 数据库连接信息配置 3.1.3 数据源配置 3.2 动态数据源设置 3. ...

  6. 搞定SpringBoot多数据源(3):参数化变更源

    目录 1. 引言 2. 参数化变更源说明 2.1 解决思路 2.2 流程说明 3. 实现参数化变更源 3.1 改造动态数据源 3.1.1 动态数据源添加功能 3.1.2 动态数据源配置 3.2 添加数 ...

  7. SpringBoot多数据源:动态数据源

    目录 1. 引言 2. 动态数据源流程说明 3. 实现动态数据源 3.1 说明及数据源配置 3.1.1 包结构说明 3.1.2 数据库连接信息配置 3.1.3 数据源配置 3.2 动态数据源设置 3. ...

  8. Springboot 多数据源配置,结合tk-mybatis

    一.前言 作为一个资深的CRUD工程师,我们在实际使用springboot开发项目的时候,难免会遇到同时使用多个数据库的情况,比如前脚刚查询mysql,后脚就要查询sqlserver. 这时,我们很直 ...

  9. springBoot多数据源(不同类型数据库)项目

    一个基于springboot的多数据源(mysql.sqlserver)项目,先看看项目结构,注意dao层 多数据源mysql配置代码: package com.douzi.robotcenter.c ...

  10. springboot 双数据源+aop动态切换

    # springboot-double-dataspringboot-double-data 应用场景 项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库. 多数据源 ...

随机推荐

  1. wmpnetwk.exe怎么禁启动

    Win7控制面板--管理工具--服务,找到并选中"Windows Media Player Network Sharing Service"服务,右键点"属性" ...

  2. bootstrap-table与Spring项目集成实例收集

    bootstrap-table项目官网:https://github.com/wenzhixin/bootstrap-table bootstrap-table各版本下载:https://github ...

  3. Intellij Idea 13:导入openfire源代码

    网络上已经有篇关于openfire导入到Intellij Idea的文章(http://www.th7.cn/Program/java/201404/187018.shtml),不过在我导入的过程中, ...

  4. 初识ASP.NET---一般处理程序

    问题来源: 今天在敲一个小的demo,利用Jquery实现级联下拉框,敲的过程中发现不管怎么和源代码对比都无法显示想要的功能. 这才想着原来是没有写后台代码,询问一清同学的时候,他告诉我能够利用ASP ...

  5. nyoj 95

     #include<stdio.h> #include<queue> #include<algorithm> using namespace std; stru ...

  6. Codeforces Round #388 (Div. 2) C. Voting

    题意:有n个人,每个人要么是属于D派要么就是R派的.从编号1开始按顺序,每个人都有一次机会可以剔除其他任何一个人(被剔除的人就不在序列中也就失去了剔除其他人的机会了):当轮完一遍后就再次从头从仅存的人 ...

  7. android自定义dialog中点击listview的item事件关闭dialog

    import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; ...

  8. POJ - 3281 Dining(拆点+最大网络流)

    Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 18230   Accepted: 8132 Descripti ...

  9. [python 基础]python装饰器(一)添加functools获取原函数信息以及functools.partial分析

    python装饰器学习的时候有两点需要注意一下 1,被装饰器装饰的函数取其func.__name__和func.func_doc的时候得到的不是被修饰函数的相关信息而是装饰器wrapper函数的doc ...

  10. [NOI2018]归程(80pts)

    https://www.zybuluo.com/ysner/note/1219964 题面 题面太长,难以概述,[戳我][1] \(ex10pts\ tree\) \(50pts\ n\leq1500 ...