springboot 多数据源的实现
相关的依赖
yml配置
java配置类:
DataSourceConfigurerjava
/** * Created by zhiqi.shao on 2017/11/20. */ @Configuration public class DataSourceConfigurer { @Bean @ConfigurationProperties("datasource.order") public DataSourceProperties orderDataSourceProperties() { return new DataSourceProperties(); } @Bean @ConfigurationProperties("datasource.order") public DataSource orderDataSource() { return orderDataSourceProperties().initializeDataSourceBuilder().build(); } @Bean @Primary @ConfigurationProperties("datasource.order-query") public DataSourceProperties orderQueryDataSourceProperties() { return new DataSourceProperties(); } @Bean @Primary @ConfigurationProperties("datasource.order-query") public DataSource orderQueryDataSource() { return orderQueryDataSourceProperties().initializeDataSourceBuilder().build(); } }
OrderDataSourceConfigurer.java
/** * Created by zhiqi.shao on 2017/11/20. */ @Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef = "entityManagerFactoryOrder", transactionManagerRef = "transactionManagerOrder", basePackages = {"com.hpe.ordersynchro.ordersEntity"} ) public class OrderDataSourceConfigurer { @Autowired @Qualifier("orderDataSource") private DataSource orderDataSource; @Bean(name = "entityManagerOrder") public EntityManager entityManager(EntityManagerFactoryBuilder builder){ return entityManagerFactoryOrder(builder).getObject().createEntityManager(); } @Bean(name= "entityManagerFactoryOrder") public LocalContainerEntityManagerFactoryBean entityManagerFactoryOrder(EntityManagerFactoryBuilder builder){ return builder .dataSource(orderDataSource) .properties(getVendorProperties(orderDataSource)) .packages(new String[]{"com.hpe.ordersynchro.ordersEntity"}) .persistenceUnit("orderPersistenceUnit") .build(); } @Autowired private JpaProperties jpaProperties; private Map<String,String> getVendorProperties(DataSource dataSource){ return jpaProperties.getHibernateProperties(dataSource); } @Bean(name ="transactionManagerOrder") public PlatformTransactionManager transactionManagerOrder(EntityManagerFactoryBuilder builder){ return new JpaTransactionManager((entityManagerFactoryOrder(builder).getObject())); }
OrderQueryDataSourceConfigurer.java
/** * Created by zhiqi.shao on 2017/11/20. */ @Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef = "entityManagerFactoryOrderQuery", transactionManagerRef = "transactionManagerOrderQuery", basePackages = {"com.hpe.ordersynchro.ordersQueryEntity"} ) public class OrderQueryDataSourceConfigurer { @Autowired @Qualifier("orderQueryDataSource") private DataSource orderQueryDataSource; @Primary @Bean(name = "entityManagerOrderQuery") public EntityManager entityManager(EntityManagerFactoryBuilder builder){ return entityManagerFactoryOrderQuery(builder).getObject().createEntityManager(); } @Primary @Bean(name= "entityManagerFactoryOrderQuery") public LocalContainerEntityManagerFactoryBean entityManagerFactoryOrderQuery(EntityManagerFactoryBuilder builder){ return builder .dataSource(orderQueryDataSource) .properties(getVendorProperties(orderQueryDataSource)) .packages(new String[]{"com.hpe.ordersynchro.ordersQueryEntity"}) .persistenceUnit("orderQueryPersistenceUnit") .build(); } @Autowired private JpaProperties jpaProperties; private Map<String,String> getVendorProperties(DataSource dataSource){ return jpaProperties.getHibernateProperties(dataSource); } @Primary @Bean(name ="transactionManagerOrderQuery") public PlatformTransactionManager transactionManagerOrderQuery(EntityManagerFactoryBuilder builder){ return new JpaTransactionManager((entityManagerFactoryOrderQuery(builder).getObject())); } }
注解:加了@primary就是默认数据源
分别是jpa和jpa对应实体的位置,我这里还是将它们放在了一个包下,所以上面配置的扫描路劲相同:
springboot 多数据源的实现的更多相关文章
- Spring-Boot配置文件数据源配置项
Spring-Boot配置文件数据源配置项(常用配置项为红色) 参数 介绍 spring.datasource.continue-on-error = false 初始化数据库时发生错误时,请勿停止 ...
- SpringBoot多数据源动态切换数据源
1.配置多数据源 spring: datasource: master: password: erp_test@abc url: jdbc:mysql://127.0.0.1:3306/M201911 ...
- SpringBoot学习笔记(三):SpringBoot集成Mybatis、SpringBoot事务管理、SpringBoot多数据源
SpringBoot集成Mybatis 第一步我们需要在pom.xml里面引入mybatis相关的jar包 <dependency> <groupId>org.mybatis. ...
- 搞定SpringBoot多数据源(1):多套源策略
目录 1. 引言 2. 运行环境 3. 多套数据源 3.1 搭建 Spring Boot 工程 3.1.1 初始化 Spring Boot 工程 3.1.2 添加 MyBatis Plus 依赖 3. ...
- 搞定SpringBoot多数据源(2):动态数据源
目录 1. 引言 2. 动态数据源流程说明 3. 实现动态数据源 3.1 说明及数据源配置 3.1.1 包结构说明 3.1.2 数据库连接信息配置 3.1.3 数据源配置 3.2 动态数据源设置 3. ...
- 搞定SpringBoot多数据源(3):参数化变更源
目录 1. 引言 2. 参数化变更源说明 2.1 解决思路 2.2 流程说明 3. 实现参数化变更源 3.1 改造动态数据源 3.1.1 动态数据源添加功能 3.1.2 动态数据源配置 3.2 添加数 ...
- SpringBoot多数据源:动态数据源
目录 1. 引言 2. 动态数据源流程说明 3. 实现动态数据源 3.1 说明及数据源配置 3.1.1 包结构说明 3.1.2 数据库连接信息配置 3.1.3 数据源配置 3.2 动态数据源设置 3. ...
- Springboot 多数据源配置,结合tk-mybatis
一.前言 作为一个资深的CRUD工程师,我们在实际使用springboot开发项目的时候,难免会遇到同时使用多个数据库的情况,比如前脚刚查询mysql,后脚就要查询sqlserver. 这时,我们很直 ...
- springBoot多数据源(不同类型数据库)项目
一个基于springboot的多数据源(mysql.sqlserver)项目,先看看项目结构,注意dao层 多数据源mysql配置代码: package com.douzi.robotcenter.c ...
- springboot 双数据源+aop动态切换
# springboot-double-dataspringboot-double-data 应用场景 项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库. 多数据源 ...
随机推荐
- 使用MySQLMigrationToolkit快速将Oracle数据导入MySQL
使用MySQL Migration Toolkit快速将Oracle数据导入MySQL 上来先说点废话 本人最近在学习一些数据库方面的知识,之前接触过Oracle和MySQL,最近又很流行MongoD ...
- asciiflow
http://asciiflow.com/ https://maxiang.io/# http://www.jianshu.com/p/19432b5e3c60
- HDU 4891 The Great Pan (字符串处理)
题目链接:HDU 4891 The Great Pan 求一串字符有多少种不同的意思,当中关心'{','}'之间的'|'. 和'$','$'之间的空格,连续N个空格算N+1种. AC代码: #incl ...
- SAP 金税接口增强 BADI
SAP与金税连接有两种方式:组件接口及文本接口. 文本接口为例: 1.SAP取发票数据.主要来自合同,销售订单,交货单.发票,客户供应商主数据等 2.SAP处理:合并.拆分,折扣等 3.导出TXT ...
- Delphi7中的函数与过程(Function and Procedure)
1.锁住空间的位置,可以选择Edit--->Lock component ,也可以在窗体设计面板下面找到组件排版功能栏,第二排里面有个带锁的图标,表示组件可以被锁住.点击一下,组件的大小和位置就 ...
- ledisDB底层实现——本质上就是用leveldb这样的底层存储,和ssdb一样,meta里存的是hash、list等的元数据
Hash hash可以算是一种两级kv,首先通过key找到一个hash对象,然后再通过field找到或者设置相应的值. 在ledisdb里面,我们需要将key跟field关联成一个key,用来存放或者 ...
- awk查找特定字段
在一行中,查找字段包含exe的: ###########awk.awk######## { for(i=1;i<NF;i++) { if($i ~ /exe/) { print $i } } } ...
- Android中使用Gson解析JSON数据
Android中使用Gson解析JSON数据 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list ...
- Unity5.3.6升级到Unity5.4.4 NGUI出现Ignoring menu item NGUI because it is in no submenu!问题解决方案
目录Assets/Plugins/NGUI/Scripts/Editor/NGUIMenu.cs文件中找到下图(左)所示,改成(右)图所示
- html body中的标签
HTML中的标签有两类 一.字体标签 字体标签包含:h1~h6.<font>.<u>.<b>.<strong><em>.<sup> ...