Spring Batch - Configuración
Mientras escribimos una aplicación Spring Batch, configuraremos el trabajo, paso, JobLauncher, JobRepository, Transaction Manager, lectores y escritores usando las etiquetas XML provistas en el espacio de nombres Spring Batch. Por lo tanto, debe incluir este espacio de nombres en su archivo XML como se muestra a continuación.
<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">
En las siguientes secciones, discutiremos las diversas etiquetas, sus atributos y ejemplos, disponibles en el espacio de nombres de Spring Batch.
Trabajo
Esta etiqueta se utiliza para definir / configurar el trabajo del SpringBatch. Contiene un conjunto de pasos y se puede iniciar utilizando JobLauncher.
Esta etiqueta tiene 2 atributos que se enumeran a continuación:
S. No | Atributo y descripción |
---|---|
1 | Id Es el Id del trabajo, es obligatorio especificar valor a este atributo. |
2 | restartable Este es el atributo que se utiliza para especificar si el trabajo se puede reiniciar o no. Este atributo es opcional. |
A continuación se muestra la configuración XML del trabajo de un SpringBatch.
<job id = "jobid" restartable = "false" >
. . . . . . . .
. . . . . . . .
. . . . . . . . // Step definitions
</job>
Paso
Esta etiqueta se usa para definir / configurar los pasos de un trabajo SpringBatch. Tiene los siguientes tres atributos:
S. No | Atributo y descripción |
---|---|
1 | Id Es el Id del trabajo, es obligatorio especificar valor a este atributo. |
2 | next Es el atajo para especificar el siguiente paso. |
3 | parent Se utiliza para especificar el nombre del bean padre del que debe heredar la configuración. |
A continuación se muestra la configuración XML del paso de un SpringBatch.
<job id = "jobid">
<step id = "step1" next = "step2"/>
<step id = "step2" next = "step3"/>
<step id = "step3"/>
</job>
Pedazo
Esta etiqueta se utiliza para definir / configurar una parte de un tasklet. Tiene los siguientes cuatro atributos:
S. No | Atributo y descripción |
---|---|
1 | reader Representa el nombre del bean lector de elementos. Acepta el valor del tipoorg.springframework.batch.item.ItemReader. |
2 | writer Representa el nombre del bean lector de elementos. Acepta el valor del tipoorg.springframework.batch.item.ItemWriter. |
3 | processor Representa el nombre del bean lector de elementos. Acepta el valor del tipoorg.springframework.batch.item.ItemProcessor. |
4 | commit-interval Se utiliza para especificar la cantidad de elementos que se procesarán antes de realizar la transacción. |
A continuación se muestra la configuración XML del fragmento de 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
El JobRepository Bean se usa para configurar el JobRepository usando una base de datos relacional. Este bean está asociado con la clase de tipoorg.springframework.batch.core.repository.JobRepository.
S. No | Atributo y descripción |
---|---|
1 | dataSource Se utiliza para especificar el nombre del bean que define la fuente de datos. |
2 | transactionManager Se utiliza para especificar el nombre del bean que define el administrador de transacciones. |
3 | databaseType Especifica el tipo de base de datos relacional que se usa en el repositorio de trabajos. |
A continuación se muestra la configuración de ejemplo de 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
El bean JobLauncher se utiliza para configurar JobLauncher. Está asociado con la claseorg.springframework.batch.core.launch.support.SimpleJobLauncher(en nuestros programas). Este frijol tiene una propiedad llamadajobrepository, y se utiliza para especificar el nombre del bean que define el jobrepository.
A continuación se muestra la configuración de ejemplo de jobLauncher.
<bean id = "jobLauncher"
class = "org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name = "jobRepository" ref = "jobRepository" />
</bean>
TransactionManager
El bean TransactionManager se utiliza para configurar TransactionManager utilizando una base de datos relacional. Este bean está asociado con la clase de tipoorg.springframework.transaction.platform.TransactionManager.
<bean id = "transactionManager"
class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
Fuente de datos
El bean de origen de datos se utiliza para configurar el Datasource. Este bean está asociado con la clase de tipoorg.springframework.jdbc.datasource.DriverManagerDataSource.
S. No | Atributo y descripción |
---|---|
1 | driverClassName Esto especifica el nombre de clase del controlador utilizado para conectarse con la base de datos. |
2 | url Esto especifica la URL de la base de datos. |
3 | username Esto especifica el nombre de usuario para conectarse con la base de datos. |
4 | password Esto especifica la contraseña para conectarse con la base de datos. |
A continuación se muestra la configuración de ejemplo del 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>