Job Repository来存储Job执行期的元数据,并提供两种默认实现。一种是存放在内存中,默认实现类为MapJobRepositoryFactoryBean;另一种是存入在数据库中。
一、配置 Memory Job Repository
<!--定义作业仓库 Job执行期间的元数据存储在内存中-->
<bean id="jobRepository" class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean">
</bean>
举例:创建一个简单的Spring Batch项目(一)_人……杰的博客-CSDN博客
二、配置DB Job Repository
<!--
data-source:定义数据源,默认dataSource
transaction-manager:定义事务管理器
isolation-level-for-create:定义创建Job Execution时候的事务隔离级别,避免多个Job Execution执行一个Job Instance,默认SERIALIZABLE
table_prefix:定义使用的数据库表的前缀为BATCH_,默认BATCH_
max-varchar-length:定义varchar的最大长度为1000,默认值为2500
-->
<batch:job-repository
id="jobRepository"
data-source="dataSource"
transaction-manager="transactionManager2"
isolation-level-for-create="SERIALIZABLE"
table-prefix="BATCH_"
max-varchar-length="1000"/>
<!--数据库的事务管理器-->
<bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://127.0.0.1:3306/spring_batch_demo2</value>
</property>
<property name="username" value="root"></property>
<property name="password" value="12345"></property>
</bean>