spring boot jpa之多数据源
来源:互联网 发布:淘宝背景音乐怎么修改 编辑:程序博客网 时间:2024/06/08 17:03
spring boot jpa之多数据源
1.配置多数据源,配置信息如下图所示:
2.datasource类的配置,具体代码如下
package com.zxl.examples.config;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import javax.sql.DataSource;/** * Created by Administrator on 2017/8/11. * * 数据源的配置 * */@Configurationpublic class DataSourceConfig { @Bean(name = "primaryDataSource") @Qualifier("primaryDataSource") @ConfigurationProperties(prefix="spring.datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "secondaryDataSource") @Qualifier("secondaryDataSource") @Primary @ConfigurationProperties(prefix="spring.datasource.secondary") public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); }}
package com.zxl.examples.config;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.data.jpa.repository.config.EnableJpaRepositories;import org.springframework.orm.jpa.JpaTransactionManager;import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;import javax.persistence.EntityManager;import javax.sql.DataSource;import java.util.Map;/** * Created by Administrator on 2017/8/11. * * 数据源一 */@Configuration@EnableTransactionManagement@EnableJpaRepositories( entityManagerFactoryRef="entityManagerFactoryPrimary", transactionManagerRef="transactionManagerPrimary", basePackages= { "com.zxl.examples.service" }) //设置Repository所在位置public class PrimaryConfig { @Autowired @Qualifier("primaryDataSource") private DataSource primaryDataSource; @Primary @Bean(name = "entityManagerPrimary") public EntityManager entityManager(EntityManagerFactoryBuilder builder) { return entityManagerFactoryPrimary(builder).getObject().createEntityManager(); } @Primary @Bean(name = "entityManagerFactoryPrimary") public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) { return builder .dataSource(primaryDataSource) .properties(getVendorProperties(primaryDataSource)) .packages("com.zxl.examples.entity") //设置实体类所在位置 .persistenceUnit("primaryPersistenceUnit") .build(); } @Autowired private JpaProperties jpaProperties; private MapgetVendorProperties(DataSource dataSource) { return jpaProperties.getHibernateProperties(dataSource); } @Primary @Bean(name = "transactionManagerPrimary") public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) { return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject()); }}
package com.zxl.examples.config;/** * Created by Administrator on 2017/8/11. * * * 数据源2 */import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.jpa.repository.config.EnableJpaRepositories;import org.springframework.orm.jpa.JpaTransactionManager;import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;import javax.persistence.EntityManager;import javax.sql.DataSource;import java.util.Map;@Configuration@EnableTransactionManagement@EnableJpaRepositories( entityManagerFactoryRef="entityManagerFactorySecondary", transactionManagerRef="transactionManagerSecondary", basePackages= { "com.zxl.examples.service2" }) //设置Repository所在位置public class SecondaryConfig { @Autowired @Qualifier("secondaryDataSource") private DataSource secondaryDataSource; @Bean(name = "entityManagerSecondary") public EntityManager entityManager(EntityManagerFactoryBuilder builder) { return entityManagerFactorySecondary(builder).getObject().createEntityManager(); } @Bean(name = "entityManagerFactorySecondary") public LocalContainerEntityManagerFactoryBean entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) { return builder .dataSource(secondaryDataSource) .properties(getVendorProperties(secondaryDataSource)) .packages("com.zxl.examples.entity") //设置实体类所在位置 .persistenceUnit("primaryPersistenceUnit") .build(); } @Autowired private JpaProperties jpaProperties; private MapgetVendorProperties(DataSource dataSource) { return jpaProperties.getHibernateProperties(dataSource); } @Bean(name = "transactionManagerSecondary") PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) { return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject()); }}
3.datasource下的service层的代码展现如下图所示
4.多数据源的controller调用代码如下图:
5.调用结果如下图所示:
阅读全文
1 0
- spring boot jpa之多数据源
- spring boot之多数据源
- Spring Boot+Spring Data Jpa+DBCP2数据源
- spring-boot jpa 配置两个数据源
- Spring+Mybatis之多数据源配置
- Spring+Mybatis之多数据源配置
- Spring Boot JPA-Hibernate
- spring boot 配置 JPA
- Spring Boot JPA总结
- spring-boot-jpa
- spring boot jpa配置
- spring-boot集成JPA
- spring-boot-data-jpa
- 【原创】Spring-boot快速入门(二)JPA数据源--转载请注明出处
- JPA整合Spring配置数据源
- spring+jpa 两个数据源配置
- spring+jpa 两个数据源配置
- spring+jpa 两个数据源配置
- HUU6147 Pokémon GO II
- java中采用dom4j解析xml文件
- 动态数组的实现原理(自定义动态数组)
- Establishing a Build Environment
- datastage TD connector报错
- spring boot jpa之多数据源
- js事件
- 如何删除GitHub上的repositories
- 《Win32多线程程序设计》之线程终止
- Luogu 2661(tarjan)
- Spring 静态代理和动态代理设计模式
- Linux系统磁盘管理
- java学习初探6之super final 抽象类
- 【JZOJ5316】【清华集训模拟】merge(DP、括号序)