- Spring Batch - MySQL to Flat File
- Spring Batch - MySQL to XML
- Spring Batch - CSV to XML
- Spring Batch - XML to MySQL
- Spring Batch - Basic Application
- Readers, Writers & Processors
- Spring Batch - Configuration
- Spring Batch - Application
- Spring Batch - Architecture
- Spring Batch - Environment
- Spring Batch - Overview
- Spring Batch - Home
Spring Batch Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Spring Batch - Configuration
While writing a Spring Batch apppcation, we will configure the job, step, JobLauncher, JobRepository, Transaction Manager, readers, and writers using the XML tags provided in the Spring Batch namespace. Therefore, you need to include this namespace in your XML file as shown below.
<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">
In the following sections, we will discuss the various tags, their attributes and examples, available in the Spring Batch namespace.
Job
This tag is used to define/configure the job of the SpringBatch. It contains a set of steps and it can be launched using the JobLauncher.
This tag has 2 attributes as psted below −
S.No | Attribute & Description |
---|---|
1 | Id It is the Id of the job, it is mandatory to specify value to this attribute. |
2 | restartable This is the attribute which is used to specify whether the job is restartable or not. This attribute is optional. |
Following is the XML configuration of the job of a SpringBatch.
<job id = "jobid" restartable = "false" > . . . . . . . . . . . . . . . . . . . . . . . . // Step definitions </job>
Step
This tag is used to define/configure the steps of a SpringBatch job. It has the following three attributes −
S.No | Attribute & Description |
---|---|
1 | Id It is the Id of the job, it is mandatory to specify value to this attribute. |
2 | next It is the shortcut to specify the next step. |
3 | parent It is used to specify the name of the parent bean from which the configuration should inherit. |
Following is the XML configuration of the step of a SpringBatch.
<job id = "jobid"> <step id = "step1" next = "step2"/> <step id = "step2" next = "step3"/> <step id = "step3"/> </job>
Chunk
This tag is used to define/configure a chunk of a tasklet. It has the following four attributes −
S.No | Attribute & Description |
---|---|
1 | reader It represents the name of the item reader bean. It accepts the value of the type org.springframework.batch.item.ItemReader. |
2 | writer It represents the name of the item reader bean. It accepts the value of the type org.springframework.batch.item.ItemWriter. |
3 | processor It represents the name of the item reader bean. It accepts the value of the type org.springframework.batch.item.ItemProcessor. |
4 | commit-interval It is used to specify the number of items to be processed before committing the transaction. |
Following is the XML configuration of the chunk of a SpringBatch.
<batch:step id = "step1"> <batch:tasklet> <batch:chunk reader = "xmlItemReader" writer = "mysqlItemWriter" processor = "itemProcessor" commit-interval = "10"> </batch:chunk> </batch:tasklet> </batch:step>
JobRepository
The JobRepository Bean is used to configure the JobRepository using a relational database. This bean is associated with the class of type org.springframework.batch.core.repository.JobRepository.
S.No | Attribute & Description |
---|---|
1 | dataSource It is used to specify the bean name which defines the datasource. |
2 | transactionManager It is used specify the name of the bean which defines the transactionmanager. |
3 | databaseType It specifies the type of the relational database used in the job repository. |
Following is the example configuration of the 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
The JobLauncher bean is used to configure the JobLauncher. It is associated with the class org.springframework.batch.core.launch.support.SimpleJobLauncher (in our programs). This bean has one property named jobrepository, and it is used to specify the name of the bean which defines the jobrepository.
Following is the example configuration of the jobLauncher.
<bean id = "jobLauncher" class = "org.springframework.batch.core.launch.support.SimpleJobLauncher"> <property name = "jobRepository" ref = "jobRepository" /> </bean>
TransactionManager
The TransactionManager bean is used to configure the TransactionManager using a relational database. This bean is associated with the class of type org.springframework.transaction.platform.TransactionManager.
<bean id = "transactionManager" class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
DataSource
The datasource bean is used to configure the Datasource. This bean is associated with the class of type org.springframework.jdbc.datasource.DriverManagerDataSource.
S.No | Attribute & Description |
---|---|
1 | driverClassName This specifies the class name of the driver used to connect with the database. |
2 | url This specifies the URL of the database. |
3 | username This specifies the username to connect with the database. |
4 | password This specifies the password to connect with the database. |
Following is the example configuration of the 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>Advertisements