我对Spring Batch非常陌生。我有一个需求,需要读取一个包含标题(字段名称)记录和数据记录的文件。
1. 我必须验证第一条记录(检查字段名称是否与预定义名称匹配),请注意此记录需要被跳过 - 我的意思是不应该成为处理器中的项目。 2. 读取并存储其余字段值到POJO中。 3. 如果字段“日期”为空,则需要将默认值设置为“xxxx-yy-zz”。
我无法使用批处理完成第一条和第三条要求。以下是样本阅读器XML,请帮忙。
1. 我必须验证第一条记录(检查字段名称是否与预定义名称匹配),请注意此记录需要被跳过 - 我的意思是不应该成为处理器中的项目。 2. 读取并存储其余字段值到POJO中。 3. 如果字段“日期”为空,则需要将默认值设置为“xxxx-yy-zz”。
我无法使用批处理完成第一条和第三条要求。以下是样本阅读器XML,请帮忙。
<bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource" value="classpath:input/import" />
<property name="encoding" value="UTF-8" />
<property name="linesToSkip" value="1" />
<property name="lineMapper" ref="line.mapper"/>
</bean>
<bean id="line.mapper" class="org.springframework.batch.item.file.mapping .DefaultLineMapper">
<property name="lineTokenizer" ref="line.tokenizer"/>
<property name="fieldSetMapper" ref="fieldSet.enity.mapper"/>
</bean>
<bean id="line.tokenizer" class="org.springframework.batch.item.file.transfo rm.DelimitedLineTokenizer">
<property name="delimiter">
<util:constant static-field="org.springframework.batch.item.file.transfo rm.DelimitedLineTokenizer.DELIMITER_TAB"/>
</property>
<property name="names" value="id,date,age " />
<property name="strict" value="false"/>
</bean>
<bean id="fieldSet.enity.mapper" class="org.springframework.batch.item.file.mapping .BeanWrapperFieldSetMapper">
<property name="targetType" value="a.b.myPOJO"/>
<property name="customEditors">
<map>
<entry key="java.util.Date">
<bean class="org.springframework.beans.propertyeditors.C ustomDateEditor">
<constructor-arg>
<bean class="java.text.SimpleDateFormat">
<constructor-arg value="yyyy-mm-dd" />
</bean>
</constructor-arg>
<constructor-arg value="true" />
</bean>
</entry>
</map>
</property>