Spring Batch - Configuração

Ao escrever um aplicativo Spring Batch, configuraremos o trabalho, etapa, JobLauncher, JobRepository, Gerenciador de transações, leitores e gravadores usando as tags XML fornecidas no namespace Spring Batch. Portanto, você precisa incluir este namespace em seu arquivo XML, conforme mostrado abaixo.

<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">

Nas seções a seguir, discutiremos as várias tags, seus atributos e exemplos, disponíveis no namespace Spring Batch.

Trabalho

Esta tag é usada para definir / configurar o trabalho do SpringBatch. Ele contém um conjunto de etapas e pode ser iniciado usando o JobLauncher.

Esta tag tem 2 atributos listados abaixo -

S.No Atributo e descrição
1

Id

É o Id do trabalho, é obrigatório especificar o valor para este atributo.

2

restartable

Este é o atributo que é usado para especificar se a tarefa é reiniciável ou não. Este atributo é opcional.

A seguir está a configuração XML do trabalho de um SpringBatch.

<job id = "jobid" restartable = "false" > 
   . . . . . . . .  
   . . . . . . . .  
   . . . . . . . . // Step definitions 
</job>

Degrau

Esta tag é usada para definir / configurar as etapas de um trabalho SpringBatch. Ele tem os seguintes três atributos -

S.No Atributo e descrição
1

Id

É o Id do trabalho, é obrigatório especificar o valor para este atributo.

2

next

É o atalho para especificar a próxima etapa.

3

parent

É usado para especificar o nome do bean pai do qual a configuração deve herdar.

A seguir está a configuração XML da etapa de um SpringBatch.

<job id = "jobid"> 
   <step id = "step1" next = "step2"/> 
   <step id = "step2" next = "step3"/> 
   <step id = "step3"/> 
</job>

Pedaço

Esta tag é usada para definir / configurar um pedaço de um tasklet. Possui os seguintes quatro atributos -

S.No Atributo e descrição
1

reader

Ele representa o nome do bean leitor de item. Aceita o valor do tipoorg.springframework.batch.item.ItemReader.

2

writer

Ele representa o nome do bean leitor de item. Aceita o valor do tipoorg.springframework.batch.item.ItemWriter.

3

processor

Ele representa o nome do bean leitor de item. Aceita o valor do tipoorg.springframework.batch.item.ItemProcessor.

4

commit-interval

É usado para especificar o número de itens a serem processados ​​antes de confirmar a transação.

A seguir está a configuração XML do pedaço de um 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

O JobRepository Bean é usado para configurar o JobRepository usando um banco de dados relacional. Este bean está associado à classe do tipoorg.springframework.batch.core.repository.JobRepository.

S.No Atributo e descrição
1

dataSource

É usado para especificar o nome do bean que define a fonte de dados.

2

transactionManager

É usado para especificar o nome do bean que define o gerenciador de transações.

3

databaseType

Ele especifica o tipo de banco de dados relacional usado no repositório de tarefas.

A seguir está o exemplo de configuração do 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

O bean JobLauncher é usado para configurar o JobLauncher. Está associado à classeorg.springframework.batch.core.launch.support.SimpleJobLauncher(em nossos programas). Este bean tem uma propriedade chamadajobrepository, e é usado para especificar o nome do bean que define o jobrepository.

A seguir está o exemplo de configuração do jobLauncher.

<bean id = "jobLauncher" 
   class = "org.springframework.batch.core.launch.support.SimpleJobLauncher"> 
   <property name = "jobRepository" ref = "jobRepository" /> 
</bean>

TransactionManager

O bean TransactionManager é usado para configurar o TransactionManager usando um banco de dados relacional. Este bean está associado à classe do tipoorg.springframework.transaction.platform.TransactionManager.

<bean id = "transactionManager"
   class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />

Fonte de dados

O bean da fonte de dados é usado para configurar o Datasource. Este bean está associado à classe do tipoorg.springframework.jdbc.datasource.DriverManagerDataSource.

S.No Atributo e descrição
1

driverClassName

Isso especifica o nome da classe do driver usado para se conectar ao banco de dados.

2

url

Isso especifica a URL do banco de dados.

3

username

Isso especifica o nome de usuário para se conectar ao banco de dados.

4

password

Isso especifica a senha para se conectar ao banco de dados.

A seguir está o exemplo de configuração do 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>