赞
踩
- 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;
-
-
- @Configuration
- public class DataSourcesConfig {
- @Bean(name = "primaryDataSource")
- @Qualifier("primaryDataSource")
- @Primary
- @ConfigurationProperties(prefix="spring.datasource.primary")
- public DataSource primaryDataSource() {
- System.out.println("primary db built");
- return DataSourceBuilder.create().build();
- }
-
- @Bean(name = "secondaryDataSource")
- @Qualifier("secondaryDataSource")
- @ConfigurationProperties(prefix="spring.datasource.secondary")
- public DataSource secondaryDataSource() {
- System.out.println("secondary db built");
- return DataSourceBuilder.create().build();
- }
- }
- 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;
-
-
- @Configuration
- @EnableTransactionManagement
- @EnableJpaRepositories(
- entityManagerFactoryRef="entityManagerFactoryPrimary",
- transactionManagerRef="transactionManagerPrimary",
- basePackages= { "com.tod.sgop.repository" })
- public class PrimaryConfig {
- @Autowired
- @Qualifier("primaryDataSource")
- private DataSource primaryDataSource;
- @Autowired
- private JpaProperties jpaProperties;
-
- @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.tod.sgop.domain")
- .persistenceUnit("primaryPersistenceUnit")
- .build();
- }
-
-
-
- private Map<String, String> getVendorProperties(DataSource dataSource) {
- return jpaProperties.getHibernateProperties(dataSource);
- }
-
- @Primary
- @Bean(name = "transactionManagerPrimary")
- public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) {
- return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject());
- }
- }
- 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.tod.sgop.oracle.repository" })
- public class SecondaryConfig {
- @Autowired
- private JpaProperties jpaProperties;
-
- @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.tod.sgop.domain")
- .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());
- }
- }
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。