Spring Batch - konfiguracja
Pisząc aplikację Spring Batch, skonfigurujemy zadanie, krok, JobLauncher, JobRepository, Transaction Manager, czytelników i pisarzy za pomocą tagów XML dostarczonych w przestrzeni nazw Spring Batch. Dlatego musisz uwzględnić tę przestrzeń nazw w swoim pliku XML, jak pokazano poniżej.
<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">W kolejnych sekcjach omówimy różne tagi, ich atrybuty i przykłady, dostępne w przestrzeni nazw Spring Batch.
Praca
Ten tag służy do definiowania / konfigurowania zadania SpringBatch. Zawiera zestaw kroków i można go uruchomić za pomocą JobLauncher.
Ten tag ma 2 atrybuty wymienione poniżej -
| S.Nr | Atrybut i opis | 
|---|---|
| 1 | Id Jest to identyfikator zlecenia, podanie wartości tego atrybutu jest obowiązkowe. | 
| 2 | restartable Jest to atrybut używany do określenia, czy zadanie można zrestartować, czy nie. Ten atrybut jest opcjonalny. | 
Poniżej znajduje się konfiguracja XML zadania SpringBatch.
<job id = "jobid" restartable = "false" > 
   . . . . . . . .  
   . . . . . . . .  
   . . . . . . . . // Step definitions 
</job>Krok
Ten tag służy do definiowania / konfigurowania kroków zadania SpringBatch. Ma następujące trzy atrybuty -
| S.Nr | Atrybut i opis | 
|---|---|
| 1 | Id Jest to identyfikator zlecenia, podanie wartości tego atrybutu jest obowiązkowe. | 
| 2 | next Jest to skrót do określenia następnego kroku. | 
| 3 | parent Służy do określenia nazwy nadrzędnego komponentu bean, z którego powinna dziedziczyć konfiguracja. | 
Poniżej znajduje się konfiguracja XML kroku w SpringBatch.
<job id = "jobid"> 
   <step id = "step1" next = "step2"/> 
   <step id = "step2" next = "step3"/> 
   <step id = "step3"/> 
</job>Kawałek
Ten tag służy do definiowania / konfigurowania fragmentu pliku tasklet. Ma następujące cztery atrybuty -
| S.Nr | Atrybut i opis | 
|---|---|
| 1 | reader Reprezentuje nazwę fasoli czytnika elementu. Przyjmuje wartość typuorg.springframework.batch.item.ItemReader. | 
| 2 | writer Reprezentuje nazwę fasoli czytnika elementu. Przyjmuje wartość typuorg.springframework.batch.item.ItemWriter. | 
| 3 | processor Reprezentuje nazwę fasoli czytnika elementu. Przyjmuje wartość typuorg.springframework.batch.item.ItemProcessor. | 
| 4 | commit-interval Służy do określenia liczby pozycji do przetworzenia przed dokonaniem transakcji. | 
Poniżej znajduje się konfiguracja XML fragmentu 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
Fasola JobRepository jest używana do konfigurowania JobRepository przy użyciu relacyjnej bazy danych. Ta fasola jest powiązana z klasą typuorg.springframework.batch.core.repository.JobRepository.
| S.Nr | Atrybut i opis | 
|---|---|
| 1 | dataSource Służy do określenia nazwy fasoli, która definiuje źródło danych. | 
| 2 | transactionManager Służy do określenia nazwy fasoli, która definiuje menedżera transakcji. | 
| 3 | databaseType Określa typ relacyjnej bazy danych używanej w repozytorium zadań. | 
Poniżej znajduje się przykładowa konfiguracja 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
Komponent bean JobLauncher służy do konfigurowania JobLauncher. Jest to związane z klasąorg.springframework.batch.core.launch.support.SimpleJobLauncher(w naszych programach). Ta fasola ma jedną właściwość o nazwiejobrepository, i służy do określenia nazwy ziarna, które definiuje jobrepository.
Poniżej znajduje się przykładowa konfiguracja jobLauncher.
<bean id = "jobLauncher" 
   class = "org.springframework.batch.core.launch.support.SimpleJobLauncher"> 
   <property name = "jobRepository" ref = "jobRepository" /> 
</bean>TransactionManager
Komponent bean TransactionManager służy do konfigurowania menedżera transakcji przy użyciu relacyjnej bazy danych. Ta fasola jest powiązana z klasą typuorg.springframework.transaction.platform.TransactionManager.
<bean id = "transactionManager"
   class = "org.springframework.batch.support.transaction.ResourcelessTransactionManager" />Źródło danych
Komponent bean źródła danych służy do konfigurowania Datasource. Ta fasola jest powiązana z klasą typuorg.springframework.jdbc.datasource.DriverManagerDataSource.
| S.Nr | Atrybut i opis | 
|---|---|
| 1 | driverClassName Określa nazwę klasy sterownika używanego do łączenia się z bazą danych. | 
| 2 | url Określa adres URL bazy danych. | 
| 3 | username Określa nazwę użytkownika do połączenia z bazą danych. | 
| 4 | password Określa hasło do połączenia z bazą danych. | 
Poniżej znajduje się przykładowa konfiguracja 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>