定义内存中的JobRepository

我正在使用Spring Boot测试Spring

Batch。我需要定义在Oracle数据库上工作的作业,但是我不想在此数据库中保存作业和步骤状态。我已经阅读了文档,可以将内存中的存储库与MapJobRepositoryFactoryBean一起使用。

然后,我实现了这个bean:

@Bean

public JobRepository jobRepository() {

MapJobRepositoryFactoryBean factoryBean = new MapJobRepositoryFactoryBean(new ResourcelessTransactionManager());

try {

JobRepository jobRepository = factoryBean.getObject();

return jobRepository;

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

但是,当我开始工作时,Spring Batch要做的第一件事就是在Oracle

DB中创建表并继续使用Oracle数据源。好像没有考虑我的JobRepository定义。

我错过了什么 ?

:我正在使用Spring Boot 1.5.3和Spring Batch 3.0.7

回答:

使用SpringBoot 2.x,解决方案更加简单。

您必须DefaultBatchConfigurer像这样扩展类:

@Component

public class NoPersistenceBatchConfigurer extends DefaultBatchConfigurer {

@Override

public void setDataSource(DataSource dataSource) {

}

}

如果没有数据源,框架将自动切换为使用MapJobRepository

以上是 定义内存中的JobRepository 的全部内容, 来源链接: utcz.com/qa/426064.html

回到顶部