Spring Batch: la Lecture d'un Fichier : si le champ est vide, la valeur par défaut
Je suis très nouveau à spring batch. J'ai exigence dans lequel je dois lire un fichier ayant un en-tête(Noms de Champ) enregistrement et les enregistrements de données
- je dois valider 1er enregistrement (check les noms de champ correspondant à l'encontre ensemble de noms prédéfinis)- à noter que cet enregistrement doivent être ignorés - je veux dire, ne devrait pas faire partie des éléments du processeur)
- lire et stocker reste des valeurs de champ d'un POJO
- si le champ 'date' est vide , j'ai besoin de définir la valeur par défaut comme "xxxx-yy-zz'
je suis incapable de les 1er et 3ème exigence avec le lot
voici un exemple de lecteur de XML. s'il vous plaît aider
<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>
Ce qui devrait se produire si la validation échoue sur la première ligne? Complètement ignorer le fichier?
OriginalL'auteur Tech User | 2013-03-15
Vous devez vous connecter pour publier un commentaire.
Créer votre propre FieldSetMapper comme ci-dessous
OriginalL'auteur jnivasreddy
Vous pense que vous devriez faire date fixée dans
ItemProcessor
.Aussi, si
<property name="linesToSkip" value="1" />
pas remplir vos exigences étendreFlatFileItemReader
et de valider la première ligne manuellement.pour le réglage de la date puis-je faire quelque chose comme ceci<bean class="org.springframework.les haricots.propertyeditors.CustomDateEditor"> <constructor-arg> <bean class="java.texte.SimpleDateFormat"> <constructor-arg value="aaaa-mm-jj"/> </bean> </constructor-arg> <constructor-arg value="true"/> <property name="valeur" value="0000-00-00"/> </bean>
N'obtenez pas votre dernier commentaire
Je voulais mettre la valeur du champ date, si c'est vide. Donc, puis-je utiliser CustomEditors à le faire par l'ajout d'une propriété, comme indiqué ci-dessous?<property name="valeur" value="0000-00-00"/> qu'il sera défini comme une valeur par défaut?
Mettre en œuvre votre propre
ItemProcessor
et modifier votre objet que vous le souhaitezOriginalL'auteur Michail Nikolaev