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>