- Spring 批处理教程
- 春季批次 - 主页
- Spring Batch - 概述
- 春季批次 - 环境
- Spring Batch - 架构
- 春季批次 - 应用
- Spring Batch - 配置
- 读者、作者和处理者
- Spring Batch - 基本应用
- Spring Batch - XML 到 MySQL
- Spring Batch - CSV 到 XML
- Spring Batch - MySQL 到 XML
- Spring Batch - MySQL 到平面文件
- Spring Batch 有用的资源
- Spring Batch - 快速指南
- Spring Batch - 有用的资源
- Spring Batch - 讨论
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 命名空间中提供的各种标签、它们的属性和示例。
工作
该标签用于定义/配置 SpringBatch 的作业。它包含一组步骤,可以使用 JobLauncher 启动。
该标签有 2 个属性,如下所示 -
序列号 | 属性及描述 |
---|---|
1 | ID 它是作业的 ID,必须为此属性指定值。 |
2 | 可重新启动 该属性用于指定作业是否可重新启动。该属性是可选的。 |
以下是 SpringBatch 作业的 XML 配置。
<job id = "jobid" restartable = "false" > . . . . . . . . . . . . . . . . . . . . . . . . // Step definitions </job>
步
该标签用于定义/配置 SpringBatch 作业的步骤。它具有以下三个属性 -
序列号 | 属性及描述 |
---|---|
1 | ID 它是作业的 ID,必须为此属性指定值。 |
2 | 下一个 这是指定下一步的快捷方式。 |
3 | 家长 它用于指定配置应继承的父 bean 的名称。 |
以下是 SpringBatch 步骤的 XML 配置。
<job id = "jobid"> <step id = "step1" next = "step2"/> <step id = "step2" next = "step3"/> <step id = "step3"/> </job>
块
该标签用于定义/配置小任务的块。它具有以下四个属性 -
序列号 | 属性及描述 |
---|---|
1 | 读者 它代表项目读取器 bean 的名称。它接受org.springframework.batch.item.ItemReader类型的值。 |
2 | 作家 它代表项目读取器 bean 的名称。它接受org.springframework.batch.item.ItemWriter类型的值。 |
3 | 处理器 它代表项目读取器 bean 的名称。它接受org.springframework.batch.item.ItemProcessor类型的值。 |
4 | 提交间隔 它用于指定提交事务之前要处理的项目数。 |
以下是 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 Bean 用于使用关系数据库配置 JobRepository。该 bean 与org.springframework.batch.core.repository.JobRepository类型的类关联。
序列号 | 属性及描述 |
---|---|
1 | 数据源 它用于指定定义数据源的 bean 名称。 |
2 | 事务管理器 它用于指定定义事务管理器的 bean 的名称。 |
3 | 数据库类型 它指定作业存储库中使用的关系数据库的类型。 |
以下是 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 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 bean 用于使用关系数据库配置 TransactionManager。该bean与org.springframework.transaction.platform.TransactionManager类型的类关联。
<bean id = "transactionManager" class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
数据源
数据源 bean 用于配置数据源。该 bean 与org.springframework.jdbc.datasource.DriverManagerDataSource类型的类关联。
序列号 | 属性及描述 |
---|---|
1 | 驱动程序类名 这指定用于连接数据库的驱动程序的类名。 |
2 | 网址 这指定了数据库的 URL。 |
3 | 用户名 这指定连接数据库的用户名。 |
4 | 密码 这指定了连接数据库的密码。 |
以下是数据源的配置示例。
<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>