1 配置文件
wisely.primary.datasource.driverClassName=oracle.jdbc.OracleDriver wisely.primary.datasource.url=jdbc\:oracle\:thin\:@192.168.1.103\:1521\:xe wisely.primary.datasource.username=gis wisely.primary.datasource.password=gis wisely.secondary.datasource.driverClassName=oracle.jdbc.OracleDriver wisely.secondary.datasource.url=jdbc\:oracle\:thin\:@192.168.1.103\:1522\:xe wisely.secondary.datasource.username=gis wisely.secondary.datasource.password=gis
2 datasource配置
第一个数据源
@Configuration public class DataSourcePrimaryConfig { @Bean(name = "primaryDS") @Qualifier("primaryDS") @Primary @ConfigurationProperties(prefix="wisely.primary.datasource") public DataSource primaryDataSource(){ return DataSourceBuilder.create().build(); } }
第二个数据源
@Configuration public class DataSourceSecondaryConfig { @Bean(name = "secondaryDS") @Qualifier("secondaryDS") @ConfigurationProperties(prefix="wisely.secondary.datasource") public DataSource secondaryDataSource(){ return DataSourceBuilder.create().build(); } }
3 实体管理器及事务管理器配置
第一个数据源
@Configuration @EnableTransactionManagement @EnableJpaRepositories(entityManagerFactoryRef="entityManagerFactoryPrimary",transactionManagerRef="transactionManagerPrimary",basePackages= { "com.wisely.demo.dao.one" })//设置dao(repo)所在位置 public class RepositoryPrimaryConfig { @Autowired private JpaProperties jpaProperties; @Autowired @Qualifier("primaryDS") private DataSource primaryDS; @Bean(name = "entityManagerPrimary") @Primary public EntityManager entityManager(EntityManagerFactoryBuilder builder) { return entityManagerFactoryPrimary(builder).getObject().createEntityManager(); } @Bean(name = "entityManagerFactoryPrimary") @Primary public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) { return builder .dataSource(primaryDS) .properties(getVendorProperties(primaryDS)) .packages("com.wisely.demo.domain.one") //设置实体类所在位置 .persistenceUnit("primaryPersistenceUnit") .build(); } private Map<String, String> getVendorProperties(DataSource dataSource) { return jpaProperties.getHibernateProperties(dataSource); } @Bean(name = "transactionManagerPrimary") @Primary PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) { return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject()); } }
第二个数据源
@Configuration @EnableTransactionManagement @EnableJpaRepositories(entityManagerFactoryRef="entityManagerFactorySecondary",transactionManagerRef="transactionManagerSecondary",basePackages= { "com.wisely.demo.dao.two" }) public class RepositorySecondaryConfig { @Autowired private JpaProperties jpaProperties; @Autowired @Qualifier("secondaryDS") private DataSource secondaryDS; @Bean(name = "entityManagerSecondary") public EntityManager entityManager(EntityManagerFactoryBuilder builder) { return entityManagerFactorySecondary(builder).getObject().createEntityManager(); } @Bean(name = "entityManagerFactorySecondary") public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) { return builder .dataSource(secondaryDS) .properties(getVendorProperties(secondaryDS)) .packages("com.wisely.demo.domain.two") .persistenceUnit("secondaryPersistenceUnit") .build(); } private Map<String, String> getVendorProperties(DataSource dataSource) { return jpaProperties.getHibernateProperties(dataSource); } @Bean(name = "transactionManagerSecondary") PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) { return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject()); } }
4 使用
此时来自不同数据库的dao(repo)可以任意在其它的bean里注入
@Controller public class TestController { @Autowired SysRoleRepo1 sysRoleRepo1; @Autowired SysRoleRepo2 sysRoleRepo2; @RequestMapping("/test") public @ResponseBody String test(){ System.out.println(Lists.newArrayList(sysRoleRepo1.findAll()).size()); System.out.println(Lists.newArrayList(sysRoleRepo2.findAll()).size()); return "ok"; } }
新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。
京东地址:http://item.jd.com/11894632.html
当当地址:http://product.dangdang.com/23926195.html
亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6
淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail
或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。
相关推荐
Spring Boot+Jpa多数据源配置Demo,可同时支持多种数据库,不同数据库,同时支持不同数据库的JdbcTemplate
Spring Boot使用spring-data-jpa配置Mysql多数据源,可用版本
本篇文章主要介绍了详解基于Spring Boot与Spring Data JPA的多数据源配置,非常具有实用价值,需要的朋友可以参考下
本系统采用企业级开发标准,使用SpringBoot架构,数据访问层采用Spring Data Jpa,业务控制层采用SpringMvc,安全框架采用Shiro,实现了完整权限系统,Controller方法采用shiro注解,来实现有效的权限控制;...
本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第一个...数据源、Spring Data JPA代码、Spring Data JPA增删改查实例、安装Redis和可视化客户端、Redis缓存配置、Redis缓存实例、Redis消息、测试...
springboot + spring data jpa + layui 数据库文件(可选) 链接:https://pan.baidu.com/s/1aLSSLfGBL1hhityifeyh6A 提取码:4zpr 依赖包文件(可选) maven搭建 链接:...
主要给大家介绍了关于Spring Boot整合JPA使用多个数据源的方法步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
- chapter3-2-4:[多数据源配置(二):Spring-data-jpa](http://blog.didispace.com/springbootmultidatasource/) - chapter3-2-5:[使用NoSQL数据库(一):Redis](http://blog.didispace.com/springbootredis/) -...
其中,每个版本都有其对应的多数据源解决方案。 - springboot-caches - Spring Boot 缓存,包括redis、ehcache、spring-cache、memcached、使用redis实现session共享 等。 - springboot-templates - Spring ...
spring-boot-javafx-jpa-demo 添加所需的开发依赖 配置数据源(MySQL)和JPA / HIBERNATE 添加jfoenix依赖
1:多租户系统集成 2:集成shardingjdbc分库分表 3:集成shardingjdbc读写分离 4:集成人大金仓数据库 5:重写了JPA-saveandflush方法 6:修复了JPA更新数据为null的问题 7:解压后导入idea,创建数据库即可运行测试
spring boot中文文档,从...连接到JNDI数据源 30.2.使用JdbcTemplate 30.3.JPA和Spring Data JPA 30.3.1.实体类 30.3.2.Spring数据JPA存储库 30.3.3.创建和删除JPA数据库 30.3.4.在View中打开EntityM
springboot使用jpa对mysql进行简单操作,使用yml配置springboot的配置文件,配置mysql的数据源,以及Hibernate的数据封装
具有两个数据源(JPA)的Spring Boot 演示如何配置Spring Boot使其与2个单独的DataSources / Domains / Repositories / TransactionManagers一起使用。
6.4 整合SpringData JPA 125 6.4.1 SpringData简介 125 6.4.2 整合 126 7 Spring Boot启动配置原理 128 7.1 启动流程(Springboot 1.50版本) 128 7.1.1 创建SpringApplication对象 129 7.1.2 运行run方法 130 7.1.3...
chapter3-2-4:多数据源配置(二):Spring-data-jpa chapter3-2-5:使用NoSQL数据库(一):Redis chapter3-2-6:使用NoSQL数据库(二):MongoDB chapter3-2-7:整合MyBatis chapter3-2-8:MyBatis注解配置详解 ...
数据访问层:使用Spring Data JPA 、Mybatis、Spring Data Mongodb等 业务层:Spring IOC、Aop事务控制、Spring Task任务调度、Feign、Ribbon、Spring AMQP、Spring Data Redis等。 控制层:Spring MVC、FastJSON...
本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第一个...数据源、Spring Data JPA代码、Spring Data JPA增删改查实例、安装Redis和可视化客户端、Redis缓存配置、Redis缓存实例、Redis消息、测试...
[Spring Boot:整合Spring Data JPA] [Spring Boot:整合MyBatis框架] [Spring Boot:实现MyBatis分页] [Spring Boot:集成Druid数据源] [Spring Boot:实现MyBatis动态数据源] [Spring Boot:实现MyBatis动态创建表...
数据库层:Spring data jpa/Spring data mongodb 数据库连接池:Druid 缓存:Ehcache 前端:Vue.js 数据库:mysql5.5以上,Mongodb建议4.0(不要使用4.2及其已上版本,否则有部分api需要自行调整)