Spring Batch - Configurazione

Durante la scrittura di un'applicazione Spring Batch, configureremo il lavoro, il passo, JobLauncher, JobRepository, Transaction Manager, lettori e writer utilizzando i tag XML forniti nello spazio dei nomi Spring Batch. Pertanto, è necessario includere questo spazio dei nomi nel file XML come mostrato di seguito.

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

Nelle sezioni seguenti, discuteremo i vari tag, i loro attributi ed esempi, disponibili nello spazio dei nomi Spring Batch.

Lavoro

Questo tag viene utilizzato per definire / configurare il lavoro di SpringBatch. Contiene una serie di passaggi e può essere avviato utilizzando JobLauncher.

Questo tag ha 2 attributi elencati di seguito:

S.No Attributo e descrizione
1

Id

È l'ID del lavoro, è obbligatorio specificare un valore per questo attributo.

2

restartable

Questo è l'attributo utilizzato per specificare se il lavoro è riavviabile o meno. Questo attributo è facoltativo.

Di seguito è riportata la configurazione XML del lavoro di uno SpringBatch.

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

Passo

Questo tag viene utilizzato per definire / configurare i passaggi di un lavoro SpringBatch. Ha i seguenti tre attributi:

S.No Attributo e descrizione
1

Id

È l'ID del lavoro, è obbligatorio specificare un valore per questo attributo.

2

next

È la scorciatoia per specificare il passaggio successivo.

3

parent

Viene utilizzato per specificare il nome del bean genitore da cui ereditare la configurazione.

Di seguito è riportata la configurazione XML del passaggio di uno SpringBatch.

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

Pezzo

Questo tag viene utilizzato per definire / configurare un blocco di un file tasklet. Ha i seguenti quattro attributi:

S.No Attributo e descrizione
1

reader

Rappresenta il nome del bean di lettura dell'elemento. Accetta il valore del tipoorg.springframework.batch.item.ItemReader.

2

writer

Rappresenta il nome del bean di lettura dell'elemento. Accetta il valore del tipoorg.springframework.batch.item.ItemWriter.

3

processor

Rappresenta il nome del bean di lettura dell'elemento. Accetta il valore del tipoorg.springframework.batch.item.ItemProcessor.

4

commit-interval

Viene utilizzato per specificare il numero di articoli da elaborare prima di eseguire il commit della transazione.

Di seguito è riportata la configurazione XML del blocco di 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

Il bean JobRepository viene utilizzato per configurare JobRepository utilizzando un database relazionale. Questo bean è associato alla classe di tipoorg.springframework.batch.core.repository.JobRepository.

S.No Attributo e descrizione
1

dataSource

Viene utilizzato per specificare il nome del bean che definisce l'origine dati.

2

transactionManager

Viene utilizzato per specificare il nome del bean che definisce il gestore delle transazioni.

3

databaseType

Specifica il tipo di database relazionale utilizzato nel repository dei lavori.

Di seguito è riportata la configurazione di esempio di 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

Il bean JobLauncher viene utilizzato per configurare JobLauncher. È associato alla classeorg.springframework.batch.core.launch.support.SimpleJobLauncher(nei nostri programmi). Questo bean ha una proprietà denominatajobrepository, e viene utilizzato per specificare il nome del bean che definisce il file jobrepository.

Di seguito è riportata la configurazione di esempio del jobLauncher.

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

TransactionManager

Il bean TransactionManager viene utilizzato per configurare TransactionManager utilizzando un database relazionale. Questo bean è associato alla classe di tipoorg.springframework.transaction.platform.TransactionManager.

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

Fonte di dati

Il bean di origine dati viene utilizzato per configurare il file Datasource. Questo bean è associato alla classe di tipoorg.springframework.jdbc.datasource.DriverManagerDataSource.

S.No Attributo e descrizione
1

driverClassName

Specifica il nome della classe del driver utilizzato per connettersi al database.

2

url

Specifica l'URL del database.

3

username

Specifica il nome utente per connettersi al database.

4

password

Specifica la password per connettersi al database.

Di seguito è riportata la configurazione di esempio di 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>