Spring boot 使用spring boot连接到spring批处理和应用程序数据库

Spring boot 使用spring boot连接到spring批处理和应用程序数据库,spring-boot,spring-batch,Spring Boot,Spring Batch,Spring批处理有自己的数据库架构。 我的应用程序有自己的数据库模式 我希望将这些表分离到不同的数据库中,以便spring批处理表不在我的应用程序数据库中 默认情况下,spring boot只支持连接到单个数据库。如何配置它,使所有与spring批处理相关的操作都进入spring批处理数据库,而我自己的所有代码都进入我的应用程序数据库 我正在使用最新的spring boot 1.2.2。我就是这样做的 在application.properties中 ### Database Details

Spring批处理有自己的数据库架构。
我的应用程序有自己的数据库模式

我希望将这些表分离到不同的数据库中,以便spring批处理表不在我的应用程序数据库中

默认情况下,spring boot只支持连接到单个数据库。如何配置它,使所有与spring批处理相关的操作都进入spring批处理数据库,而我自己的所有代码都进入我的应用程序数据库


我正在使用最新的spring boot 1.2.2。

我就是这样做的

在application.properties中

### Database Details
datasource.app.driverClassName=oracle.jdbc.driver.OracleDriver
datasource.app.url=jdbc:oracle:thin:@//localhost:1521/xe
datasource.app.username=YOUR_APP_DB_USERNAME 
datasource.app.password=YOUR_PASSWORD 

datasource.batch.driverClassName=oracle.jdbc.driver.OracleDriver
datasource.batch.url=jdbc:oracle:thin:@//localhost:1521/xe
datasource.batch.username=YOUR_BATCH_DB_USERNAME 
datasource.batch.password=YOUR_PASSWORD 
并在您的
@Configuration
类中添加以下bean

@Primary
@Bean
@ConfigurationProperties(prefix = "datasource.app")
public DataSource appDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
@ConfigurationProperties(prefix = "datasource.batch")
public DataSource batchDataSource() {
    return DataSourceBuilder.create().build();
}

@Bean
public JobLauncher jobLauncher() throws Exception {
    SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
    jobLauncher.setJobRepository(jobRepository());
    return jobLauncher;
}

@Bean
public JobRepository jobRepository() throws Exception {

    DataSourceTransactionManager batchTransactionManager = new DataSourceTransactionManager();
    batchTransactionManager.setDataSource(batchDataSource());

    JobRepositoryFactoryBean jobRepositoryFactoryBean = new JobRepositoryFactoryBean();
    jobRepositoryFactoryBean.setTransactionManager(batchTransactionManager);
    jobRepositoryFactoryBean.setDatabaseType("ORACLE");
    jobRepositoryFactoryBean.setIsolationLevelForCreate("ISOLATION_DEFAULT");
    jobRepositoryFactoryBean.setDataSource(batchDataSource());
    jobRepositoryFactoryBean.afterPropertiesSet();
    return jobRepositoryFactoryBean.getObject();
}