定义内存中的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
像这样扩展类:
@Componentpublic class NoPersistenceBatchConfigurer extends DefaultBatchConfigurer {
@Override
public void setDataSource(DataSource dataSource) {
}
}
如果没有数据源,框架将自动切换为使用MapJobRepository
。
以上是 定义内存中的JobRepository 的全部内容, 来源链接: utcz.com/qa/426064.html