spring批处理:如何为每个作业设置一个作业存储库

时间:2012-02-03 10:57:56

标签: java spring spring-batch

我正在运行多个作业,我希望每个作业都有一个单独的作业库(内存实现)。

请在下面找到我尝试过的bean定义。请注意,我已尝试使用范围原型指定bean。

我收到java.lang.IllegalArgumentException: JobExecution must already be saved个例外。

<bean id="jobLauncher"
      class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
  <property name="jobRepository" ref="jobRepository" />
</bean>

<bean id="jobRepository"
      class="org.springframework.batch.core.repository.support.SimpleJobRepository" 
      scope="prototype"> 
  <constructor-arg> 
    <bean class="org.springframework.batch.core.repository.dao.MapJobInstanceDao"/> 
  </constructor-arg> 
  <constructor-arg> 
    <bean class="org.springframework.batch.core.repository.dao.MapJobExecutionDao" /> 
  </constructor-arg> 
  <constructor-arg> 
    <bean class="org.springframework.batch.core.repository.dao.MapStepExecutionDao"/> 
  </constructor-arg>
  <constructor-arg> 
     <bean class="org.springframework.batch.core.repository.dao.MapExecutionContextDao"/> 
  </constructor-arg> 
</bean>

1 个答案:

答案 0 :(得分:1)

这个对我有用,例如作为单元测试jobRepository

<bean id="jobRepository"
    class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean">
</bean>