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>