Spring Batch - 配置



在编写 Spring Batch 应用程序时,我们将使用 Spring Batch 命名空间中提供的 XML 标签来配置作业、步骤、JobLauncher、JobRepository、事务管理器、读取器和写入器。因此,您需要在您的 XML 文件中包含此命名空间,如下所示。

<beans xmlns = "http://www.springframework.org/schema/beans" 
   xmlns:batch = "http://www.springframework.org/schema/batch" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation = "http://www.springframework.org/schema/batch 

   http://www.springframework.org/schema/batch/spring-batch-2.2.xsd 
   http://www.springframework.org/schema/bean   
   http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> 

在以下部分,我们将讨论 Spring Batch 命名空间中可用的各种标签、它们的属性和示例。

作业 (Job)

此标签用于定义/配置 SpringBatch 的作业。它包含一组步骤,并且可以使用 JobLauncher 启动。

此标签具有如下所示的 2 个属性:

序号 属性 & 描述
1

Id

它是作业的 Id,必须为此属性指定值。

2

restartable

此属性用于指定作业是否可重启。此属性是可选的。

以下是 SpringBatch 作业的 XML 配置。

<job id = "jobid" restartable = "false" > 
   . . . . . . . .  
   . . . . . . . .  
   . . . . . . . . // Step definitions 
</job>

步骤 (Step)

此标签用于定义/配置 SpringBatch 作业的步骤。它具有以下三个属性:

序号 属性 & 描述
1

Id

它是作业的 Id,必须为此属性指定值。

2

next

它是指定下一步的快捷方式。

3

parent

它用于指定配置应从中继承的父 bean 的名称。

以下是 SpringBatch 步骤的 XML 配置。

<job id = "jobid"> 
   <step id = "step1" next = "step2"/> 
   <step id = "step2" next = "step3"/> 
   <step id = "step3"/> 
</job>

块 (Chunk)

此标签用于定义/配置任务块的块。它具有以下四个属性:

序号 属性 & 描述
1

reader

它表示项目读取器 bean 的名称。它接受类型为org.springframework.batch.item.ItemReader的值。

2

writer

它表示项目读取器 bean 的名称。它接受类型为org.springframework.batch.item.ItemWriter的值。

3

processor

它表示项目读取器 bean 的名称。它接受类型为org.springframework.batch.item.ItemProcessor的值。

4

commit-interval

它用于指定在提交事务之前要处理的项目数量。

以下是 SpringBatch 块的 XML 配置。

<batch:step id = "step1"> 
   <batch:tasklet> 
      <batch:chunk reader = "xmlItemReader" 
         writer = "mysqlItemWriter" processor = "itemProcessor" commit-interval = "10"> 
      </batch:chunk> 
   </batch:tasklet> 
</batch:step> 

JobRepository

JobRepository Bean 用于使用关系数据库配置 JobRepository。此 bean 与类型为org.springframework.batch.core.repository.JobRepository的类关联。

序号 属性 & 描述
1

dataSource

它用于指定定义数据源的 bean 名称。

2

transactionManager

它用于指定定义事务管理器的 bean 名称。

3

databaseType

它指定作业存储库中使用的关系数据库的类型。

以下是 JobRepository 的示例配置。

<bean id = "jobRepository" 
   class = "org.springframework.batch.core.repository.support.JobRepositoryFactoryBean"> 
   <property name = "dataSource" ref = "dataSource" /> 
   <property name = "transactionManager" ref="transactionManager" /> 
   <property name = "databaseType" value = "mysql" /> 
</bean> 

JobLauncher

JobLauncher bean 用于配置 JobLauncher。它与类org.springframework.batch.core.launch.support.SimpleJobLauncher(在我们的程序中)关联。此 bean 具有一个名为jobrepository的属性,它用于指定定义jobrepository的 bean 名称。

以下是 jobLauncher 的示例配置。

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

事务管理器 (TransactionManager)

TransactionManager bean 用于使用关系数据库配置 TransactionManager。此 bean 与类型为org.springframework.transaction.platform.TransactionManager的类关联。

<bean id = "transactionManager"
   class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />

数据源 (DataSource)

数据源 bean 用于配置数据源。此 bean 与类型为org.springframework.jdbc.datasource.DriverManagerDataSource的类关联。

序号 属性 & 描述
1

driverClassName

它指定用于连接数据库的驱动程序的类名。

2

url

它指定数据库的 URL。

3

username

它指定用于连接数据库的用户名。

4

password

它指定用于连接数据库的密码。

以下是数据源的示例配置。

<bean id = "dataSource" 
   class = "org.springframework.jdbc.datasource.DriverManagerDataSource"> 
   <property name = "driverClassName" value = "com.mysql.cj.jdbc.Driver" /> 
   <property name = "url" value = "jdbc:mysql://127.0.0.1:3306/details" /> 
   <property name = "username" value = "myuser" /> 
   <property name = "password" value = "password" /> 
</bean> 
广告