我有一个带有对象'Company'的csv文件。每个公司在系统中都有开始日期,活动终止日期和创建日期。
前两个日期格式为dd / MM / yy,最后一个日期格式为dd / MM / yyyy HH:mm。
使用BeanWrapperFieldSetMapper,我不知道如何使用xml bean解析日期的两种格式。我的代码:
code
<bean id="companyReader" class="org.springframework.batch.item.file.FlatFileItemReader"
scope="step">
<!-- Read a csv file -->
<property name="linesToSkip" value="1" />
<property name="encoding" value="${batch.company.encodage}" />
<property name="lineMapper">
<bean class="org.project.batch.utils.ReadEntityLineMapper">
<!-- split it -->
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="delimiter" value="${batch.company.separator}" />
<property name="names"
value="name,dateStartActivity,dateEndActivity,dateCreation" />
</bean>
</property>
<property name="fieldSetMapper">
<!-- map to an object -->
<bean
class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="targetType"
value="org.project.entity.company" />
<property name="customEditors">
<map>
<entry key="java.util.Date">
<ref bean="shortDateWithHourEditor" />
</entry>
</map>
</property>
</bean>
</property>
</bean>
</property>
</bean>
我的问题是如何为我的约会使用多个customEditor?
对于每个字段都有其自己的日期格式(或货币格式等)的此类高级用例,您需要创建一个自定义线映射器。您仍然可以在实现中使用DelimitedLineTokenizer
来标记项目,但是映射部分应该是自定义的。