Spring Batch - Konfiguration
Beim Schreiben einer Spring Batch-Anwendung konfigurieren wir Job, Schritt, JobLauncher, JobRepository, Transaction Manager, Leser und Schreiber mithilfe der im Spring Batch-Namespace bereitgestellten XML-Tags. Daher müssen Sie diesen Namespace wie unten gezeigt in Ihre XML-Datei aufnehmen.
<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">
In den folgenden Abschnitten werden die verschiedenen Tags, ihre Attribute und Beispiele erläutert, die im Spring Batch-Namespace verfügbar sind.
Job
Dieses Tag wird verwendet, um den Job des SpringBatch zu definieren / konfigurieren. Es enthält eine Reihe von Schritten und kann mit dem JobLauncher gestartet werden.
Dieses Tag hat 2 Attribute wie unten aufgeführt -
S.No. | Attribut & Beschreibung |
---|---|
1 | Id Es ist die ID des Jobs. Es ist obligatorisch, einen Wert für dieses Attribut anzugeben. |
2 | restartable Mit diesem Attribut wird angegeben, ob der Job neu gestartet werden kann oder nicht. Dieses Attribut ist optional. |
Es folgt die XML-Konfiguration des Jobs eines SpringBatch.
<job id = "jobid" restartable = "false" >
. . . . . . . .
. . . . . . . .
. . . . . . . . // Step definitions
</job>
Schritt
Dieses Tag wird zum Definieren / Konfigurieren der Schritte eines SpringBatch-Jobs verwendet. Es hat die folgenden drei Attribute -
S.No. | Attribut & Beschreibung |
---|---|
1 | Id Es ist die ID des Jobs. Es ist obligatorisch, einen Wert für dieses Attribut anzugeben. |
2 | next Dies ist die Verknüpfung, um den nächsten Schritt anzugeben. |
3 | parent Es wird verwendet, um den Namen der übergeordneten Bean anzugeben, von der die Konfiguration erben soll. |
Es folgt die XML-Konfiguration des Schritts eines SpringBatch.
<job id = "jobid">
<step id = "step1" next = "step2"/>
<step id = "step2" next = "step3"/>
<step id = "step3"/>
</job>
Chunk
Dieses Tag wird verwendet, um einen Teil von a zu definieren / konfigurieren tasklet. Es hat die folgenden vier Attribute -
S.No. | Attribut & Beschreibung |
---|---|
1 | reader Es repräsentiert den Namen der Item Reader Bean. Es akzeptiert den Wert des Typsorg.springframework.batch.item.ItemReader. |
2 | writer Es repräsentiert den Namen der Item Reader Bean. Es akzeptiert den Wert des Typsorg.springframework.batch.item.ItemWriter. |
3 | processor Es repräsentiert den Namen der Item Reader Bean. Es akzeptiert den Wert des Typsorg.springframework.batch.item.ItemProcessor. |
4 | commit-interval Hiermit wird die Anzahl der Elemente angegeben, die vor dem Festschreiben der Transaktion verarbeitet werden sollen. |
Im Folgenden finden Sie die XML-Konfiguration des Blocks eines 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
Die JobRepository Bean wird verwendet, um das JobRepository mithilfe einer relationalen Datenbank zu konfigurieren. Diese Bean ist der Typklasse zugeordnetorg.springframework.batch.core.repository.JobRepository.
S.No. | Attribut & Beschreibung |
---|---|
1 | dataSource Es wird verwendet, um den Bean-Namen anzugeben, der die Datenquelle definiert. |
2 | transactionManager Es wird verwendet, um den Namen der Bean anzugeben, die den Transaktionsmanager definiert. |
3 | databaseType Es gibt den Typ der relationalen Datenbank an, die im Job-Repository verwendet wird. |
Es folgt die Beispielkonfiguration des 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
Die JobLauncher-Bean wird zum Konfigurieren des JobLauncher verwendet. Es ist der Klasse zugeordnetorg.springframework.batch.core.launch.support.SimpleJobLauncher(in unseren Programmen). Diese Bean hat eine Eigenschaft namensjobrepositoryund wird verwendet, um den Namen der Bean anzugeben, die die definiert jobrepository.
Es folgt die Beispielkonfiguration des jobLauncher.
<bean id = "jobLauncher"
class = "org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name = "jobRepository" ref = "jobRepository" />
</bean>
TransactionManager
Die TransactionManager-Bean wird verwendet, um den TransactionManager mithilfe einer relationalen Datenbank zu konfigurieren. Diese Bean ist der Typklasse zugeordnetorg.springframework.transaction.platform.TransactionManager.
<bean id = "transactionManager"
class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
Datenquelle
Die Datenquellen-Bean wird zum Konfigurieren der verwendet Datasource. Diese Bean ist der Typklasse zugeordnetorg.springframework.jdbc.datasource.DriverManagerDataSource.
S.No. | Attribut & Beschreibung |
---|---|
1 | driverClassName Dies gibt den Klassennamen des Treibers an, der für die Verbindung mit der Datenbank verwendet wird. |
2 | url Dies gibt die URL der Datenbank an. |
3 | username Dies gibt den Benutzernamen an, der mit der Datenbank verbunden werden soll. |
4 | password Dies gibt das Kennwort für die Verbindung mit der Datenbank an. |
Es folgt die Beispielkonfiguration des 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>