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 个属性,如下所示 −
S.No | 属性 & 描述 |
---|---|
1 | Id 它是作业的 ID,必须为此属性指定值。 |
2 | restartable 这是用于指定作业是否可重新启动的属性。 该属性是可选的。 |
以下是 Spring Batch 作业的 XML 配置。
<job id = "jobid" restartable = "false" > . . . . . . . . . . . . . . . . . . . . . . . . // Step definitions </job>
Step
此标签用于定义/配置 Spring Batch 作业的步骤。 它具有以下三个属性 −
S.No | 属性 & 描述 |
---|---|
1 | Id 它是作业的 ID,必须为此属性指定值。 |
2 | next 它是指定下一步的快捷方式。 |
3 | parent 它用于指定应从其继承配置的父 bean 的名称。 |
以下是 Spring Batch 步骤的 XML 配置。
实例
<job id = "jobid">
<step id = "step1" next = "step2"/>
<step id = "step2" next = "step3"/>
<step id = "step3"/>
</job>
Chunk
这个标签用于定义/配置一个 tasklet 的块。 它具有以下四个属性 −
S.No | 属性 & 描述 |
---|---|
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 它用于指定在提交事务之前要处理的项目数。 |
以下是 Spring Batch 的块的 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 类型的类相关联。
S.No | 属性 & 描述 |
---|---|
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 用于配置 Datasource。 该 bean 与 org.springframework.jdbc.datasource.DriverManagerDataSource 类型的类相关联。
S.No | 属性 & 描述 |
---|---|
1 | driverClassName 这指定用于连接数据库的驱动程序的类名。 |
2 | url 这指定了数据库的 URL。 |
3 | username 这指定了连接数据库的用户名。 |
4 | password 这指定了连接数据库的密码。 |
以下是 datasource 的示例配置。
实例
<bean id = "dataSource"
class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name = "driverClassName" value = "com.mysql.jdbc.Driver" />
<property name = "url" value = "jdbc:mysql://localhost:3306/details" />
<property name = "username" value = "myuser" />
<property name = "password" value = "password" />
</bean>