Spring-batch-configuration
Spring Batch-設定
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ネームスペースで使用可能なさまざまなタグ、その属性、および例について説明します。
Job
このタグは、SpringBatchのジョブを定義/構成するために使用されます。 これには一連のステップが含まれており、JobLauncherを使用して起動できます。
このタグには、次の2つの属性があります-
S.No | Attribute & Description |
---|---|
1 |
Id ジョブのIDです。この属性に値を指定することは必須です。 |
2 |
restartable これは、ジョブが再起動可能かどうかを指定するために使用される属性です。 この属性はオプションです。 |
以下は、SpringBatchのジョブのXML構成です。
<job id = "jobid" restartable = "false" >
. . . . . . . .
. . . . . . . .
. . . . . . . .//Step definitions
</job>
Step
このタグは、SpringBatchジョブのステップを定義/構成するために使用されます。 次の3つの属性があります-
S.No | Attribute & Description |
---|---|
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 | Attribute & Description |
---|---|
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 | Attribute & Description |
---|---|
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には jobrepository という名前のプロパティが1つあり、 jobrepository を定義するBeanの名前を指定するために使用されます。
以下は、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は、データソース*の構成に使用されます。 このBeanは、 *org.springframework.jdbc.datasource.DriverManagerDataSource タイプのクラスに関連付けられています。
S.No | Attribute & Description |
---|---|
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>