SpringBatch-構成

Spring Batchアプリケーションの作成中に、Spring Batch名前空間で提供されるXMLタグを使用して、ジョブ、ステップ、JobLauncher、JobRepository、Transaction Manager、リーダー、およびライターを構成します。したがって、以下に示すように、この名前空間をXMLファイルに含める必要があります。

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

次のセクションでは、Spring Batch名前空間で使用できるさまざまなタグ、それらの属性、および例について説明します。

ジョブ

このタグは、SpringBatchのジョブを定義/構成するために使用されます。これには一連のステップが含まれており、JobLauncherを使用して起動できます。

このタグには、以下の2つの属性があります-

S.No 属性と説明
1

Id

これはジョブのIDであり、この属性に値を指定する必要があります。

2

restartable

これは、ジョブを再開可能かどうかを指定するために使用される属性です。この属性はオプションです。

以下は、SpringBatchのジョブのXML構成です。

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

ステップ

このタグは、SpringBatchジョブのステップを定義/構成するために使用されます。次の3つの属性があります-

S.No 属性と説明
1

Id

これはジョブのIDであり、この属性に値を指定する必要があります。

2

next

次のステップを指定するためのショートカットです。

3

parent

これは、構成が継承する親Beanの名前を指定するために使用されます。

以下は、SpringBatchのステップのXML構成です。

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

チャンク

このタグは、チャンクを定義/構成するために使用されます tasklet。次の4つの属性があります-

S.No 属性と説明
1

reader

アイテムリーダーBeanの名前を表します。タイプの値を受け入れますorg.springframework.batch.item.ItemReader

2

writer

アイテムリーダーBeanの名前を表します。タイプの値を受け入れますorg.springframework.batch.item.ItemWriter

3

processor

アイテムリーダーBeanの名前を表します。タイプの値を受け入れますorg.springframework.batch.item.ItemProcessor

4

commit-interval

トランザクションをコミットする前に処理するアイテムの数を指定するために使用されます。

以下は、SpringBatchのチャンクのXML構成です。

<batch:step id = "step1"> 
   <batch:tasklet> 
      <batch:chunk reader = "xmlItemReader" 
         writer = "mysqlItemWriter" processor = "itemProcessor" commit-interval = "10"> 
      </batch:chunk> 
   </batch:tasklet> 
</batch:step>

JobRepository

JobRepository Beanは、リレーショナルデータベースを使用してJobRepositoryを構成するために使用されます。このBeanは、タイプのクラスに関連付けられていますorg.springframework.batch.core.repository.JobRepository

S.No 属性と説明
1

dataSource

これは、データソースを定義するBean名を指定するために使用されます。

2

transactionManager

これは、transactionmanagerを定義するBeanの名前を指定するために使用されます。

3

databaseType

ジョブリポジトリで使用されるリレーショナルデータベースのタイプを指定します。

以下は、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

JobLauncher Beanは、JobLauncherを構成するために使用されます。クラスに関連付けられていますorg.springframework.batch.core.launch.support.SimpleJobLauncher(私たちのプログラムで)。このBeanには、という名前のプロパティが1つあります。jobrepository、およびを定義するBeanの名前を指定するために使用されます jobrepository

以下は、jobLauncherの構成例です。

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

TransactionManager

TransactionManager Beanは、リレーショナルデータベースを使用してTransactionManagerを構成するために使用されます。このBeanは、タイプのクラスに関連付けられていますorg.springframework.transaction.platform.TransactionManager

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

情報元

データソースBeanは、 Datasource。このBeanは、タイプのクラスに関連付けられていますorg.springframework.jdbc.datasource.DriverManagerDataSource

S.No 属性と説明
1

driverClassName

これは、データベースへの接続に使用されるドライバーのクラス名を指定します。

2

url

これは、データベースのURLを指定します。

3

username

これは、データベースに接続するためのユーザー名を指定します。

4

password

これは、データベースに接続するためのパスワードを指定します。

以下は、の構成例です。 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>