Je suis en train d'écrire une application Spring Batch qui lit un fichier CSV, effectue une transformation et écrit un fichier CSV modifié à envoyer à un autre processus batch.Spring Batch BeanWrapperFieldExtractor pour un grand nombre de champs
Ma configuration écrivain ressemble à ceci:
<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.FormatterLineAggregator">
<beans:property name="fieldExtractor">
<beans:bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
<beans:property name="names" value="column1, column2, column3, column4 ------ 322 fields " />
</beans:bean>
</beans:property>
<beans:property name="format" value="%-8s%-12s%-11s%-16s" ----322 fields />
</beans:bean>
</beans:property>
Je dois écrire autour de 322 champs. Je suis incapable d'obtenir FormatterLineAggregator
pour faire mon travail. Si j'écris le format comme
<property name="format" value="%s;%s;%s;%s;%s;%s;%s;%f;%f;%s;%f;%f;%td.%tm.%tY;%td.%tm.%<tY;%s;%td.%tm.%<tY;%s;%s;%s;%s;%td.%tm.%tY" /> ,
il devient vraiment salissant et il est difficile de s'assurer que tous les champs sont corrects.
Je pensais que 3 solutions différentes:
Ou aller avec l'approche ci-dessus. Ecrivez un
CustomEditorFieldsExtractor
mais ne savez pas quoi écrire dans la classe et comment formater les champs. (Preffered)Utilisez un bean framework BeanIO "non standard", mais je crains que mon client ne soit pas d'accord avec cette solution.
Est-ce que quelqu'un peut fournir certaines entrées? Apprécier ton aide!