Concept Learned
A. Configuration
1. define a Simple Step
<bean id="simpleStep"
class="org.springframework.batch.core.step.item.SimpleStepFactoryBean"
abstract="true">
<property name="transactionManager" ref="eplTransactionManager" />
<property name="jobRepository" ref="jobRepository" />
<property name="startLimit" value="100" />
<property name="commitInterval" value="10" />
</bean>
-- extends been needed --
<bean id="jobRepository"
class="org.springframework.batch.core.repository.support.SimpleJobRepository">
<constructor-arg>
<bean
class="org.springframework.batch.core.repository.dao.MapJobInstanceDao" />
</constructor-arg>
<constructor-arg>
<bean
class="org.springframework.batch.core.repository.dao.MapJobExecutionDao" />
</constructor-arg>
<constructor-arg>
<bean
class="org.springframework.batch.core.repository.dao.MapStepExecutionDao" />
</constructor-arg>
</bean>
<bean id="eplTransactionManager" class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
2. Defines your own business bean
<bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="lineTokenizer" ref="lineTokenizer" />
<property name="fieldSetMapper" ref="eplFieldSetMapper" />
<property name="resource" value="" />
<property name="recordSeparatorPolicy" ref="eplRecordSeparatorPolicy" />
</bean>
3. Defines your job
<bean id="eplJob" class="org.springframework.batch.core.job.SimpleJob">
<property name="jobRepository" ref="jobRepository">
</property>
<property name="steps">
<list>
<!-- read, parse, transform, load instances -->
<bean id="step1" parent="simpleStep">
<property name="itemReader" ref="reader" />
<property name="itemWriter" ref="writer" />
<property name="streams">
<list>
<ref bean="writer" />
</list>
</property>
</bean>
</list>
</property>
</bean>