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>