六、springboot(三)配置双数据源

1、目录结构

2.jdbc.properties配置

 

#db houge

spring.datasource.houge.jdbc-url=jdbc:oracle:thin:@192.168.0.120:1521:ORCL

spring.datasource.houge.username=houge

spring.datasource.houge.password=monkey

spring.datasource.houge.driver-class-name=oracle.jdbc.driver.OracleDriver

spring.datasource.houge.initial-size=10

spring.datasource.houge.min-idle=10

spring.datasource.houge.max-active=100

 

#db gkh

spring.datasource.gkh.jdbc-url=jdbc:oracle:thin:@192.168.0.115:1521:ORCL

spring.datasource.gkh.username=gkh

spring.datasource.gkh.password=111111

spring.datasource.gkh.driver-class-name=oracle.jdbc.driver.OracleDriver

spring.datasource.gkh.initial-size=10

spring.datasource.gkh.min-idle=10

spring.datasource.gkh.max-active=100

3、注解式数据源配置DataSourceConfig 

@Configuration

@PropertySource("classpath:config/jdbc.properties")

public class DataSourceConfig {

 

    @Primary

    @Bean(name = "dataSourceHouge")

    @ConfigurationProperties(prefix = "spring.datasource.houge")

    public DataSource dataSourceHouge() {

        return DataSourceBuilder.create().build();

    }

 

    @Bean(name = "dataSourceGkh")

    @ConfigurationProperties(prefix = "spring.datasource.gkh")

    public DataSource dataSourceGkh() {

        return DataSourceBuilder.create().build();

    } 

}

 

4、houge数据库配置

 

@Configuration

@EnableTransactionManagement

@EnableJpaRepositories(

        entityManagerFactoryRef = "entityManagerFactoryHouge",

        transactionManagerRef = "transactionManagerHouge",

        basePackages = {"com.lofty.springboot.repository.houge" })

public class HougeDataSource {

 

    @Autowired

    @Qualifier("dataSourceHouge")

    private DataSource dataSourceHouge;

 

    @Primary

    @Bean(name = "entityManagerFactoryHouge")

    public LocalContainerEntityManagerFactoryBean entityManagerFactoryHouge(EntityManagerFactoryBuilder builder) {

        LocalContainerEntityManagerFactoryBean em = builder.dataSource(dataSourceHouge)

                .packages("com.lofty.springboot.domain.houge")

                .persistenceUnit("hougePersistenceUnit").build();

        return em;

    }

 

    @Primary

    @Bean(name = "transactionManagerHouge")

    PlatformTransactionManager transactionManagerHouge(EntityManagerFactoryBuilder builder) {

        return new JpaTransactionManager(entityManagerFactoryHouge(builder).getObject());

    }

 

}

 

 

 

5、gkh数据库配置

@Configuration

@EnableTransactionManagement

@EnableJpaRepositories(

        entityManagerFactoryRef = "entityManagerFactoryGkh",

        transactionManagerRef = "transactionManagerGkh",

        basePackages = {"com.lofty.springboot.repository.gkh" })

public class GkhDataSource {

 

    @Autowired

    @Qualifier("dataSourceGkh")

    private DataSource dataSourceGkh;

 

    @Bean(name = "entityManagerFactoryGkh")

    public LocalContainerEntityManagerFactoryBean entityManagerFactoryGkh(EntityManagerFactoryBuilder builder) {

        LocalContainerEntityManagerFactoryBean em = builder.dataSource(dataSourceGkh)

                .packages("com.lofty.springboot.domain.gkh")

                .persistenceUnit("gkhPersistenceUnit").build();

        return em;

    }

 

    @Bean(name = "transactionManagerGkh")

    PlatformTransactionManager transactionManagerGkh(EntityManagerFactoryBuilder builder) {

        return new JpaTransactionManager(entityManagerFactoryGkh(builder).getObject());

    }

 

}

 

6、启动测试

posted on 2018-10-11 18:16  那只猴子  阅读(638)  评论(0)    收藏  举报

导航