使用spring-boot连接到spring-batch和应用程序数据库

Spring Batch具有自己的数据库架构。

我的应用程序具有自己的数据库架构。

我想将它们分开存放在不同的数据库中,以便spring-batch表不在我的应用程序数据库内。

默认情况下,spring-boot仅支持连接到单个数据库。如何配置它,以便所有与spring-batch相关的操作都进入spring-

batch数据库,而我所有的代码都进入我的应用程序数据库?

我正在使用最新的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();

}

以上是 使用spring-boot连接到spring-batch和应用程序数据库 的全部内容, 来源链接: utcz.com/qa/410836.html

回到顶部