在编写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的作业。 它包含一系列步骤(step
),可以使用JobLauncher
启动。
<job>
标签有2
个属性,如下所列 -
编号 | 属性 | 描述 |
---|---|---|
1 | id |
它是作业的标识,必须指定该属性的值。 |
2 | restartable |
这是用于指定作业是否可重新启动的属性。 该属性是可选的。 |
以下是Spring Batch作业的XML配置。
<job id = "jobid" restartable = "false" > . . . . . . . . . . . . . . . . . . . . . . . . // Step definitions </job>
步骤
<step>
标签用于定义/配置Spring Batch作业的步骤。 它有以下三个属性 -
编号 | 属性 | 描述 |
---|---|---|
1 | 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
块。它有以下四个属性 -
编号 | 属性 | 描述 |
---|---|---|
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
类型的类相关联。
编号 | 属性 | 描述 |
---|---|---|
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 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 | driverClassName |
这指定用于连接数据库的驱动程序的类名称。 |
2 | url |
这指定了数据库的URL。 |
3 | username |
这指定了连接数据库的用户名。 |
4 | password |
这指定了与数据库连接的密码。 |
以下是数据源的示例配置。
<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>