Comment écrire un spring batch étape sans itemwriter
Je suis en train de configurer un spring batch, sans un article de l'écrivain à l'aide ci-dessous configuraion. Cependant j'obtiens le message d'erreur disant que l'écrivain
l'élément n'a ni un "écrivain" attribut, ni un élément.
Je suis passé par le lien spring batch : Tasklet sans ItemWriter. Mais ne pouvait pas résoudre le problème.
Pouvait-on me dire les modifications à être apportées dans l'extrait de code que j'ai mentionné
<batch:job id="helloWorldJob">
<batch:step id="step1">
<batch:tasklet>
<batch:chunk reader="cvsFileItemReader"
commit-interval="10">
</batch:chunk>
</batch:tasklet>
</batch:step>
</batch:job>
<bean id="cvsFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="resource" value="classpath:cvs/input/report.csv" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names" value="id,sales,qty,staffName,date" />
</bean>
</property>
<property name="fieldSetMapper">
<bean class="com.mkyong.ReportFieldSetMapper" />
<!-- if no data type conversion, use BeanWrapperFieldSetMapper to map by name
<bean
class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="report" />
</bean>
-->
</property>
</bean>
</property>
</bean>
Pourquoi voudriez-vous morceau en fonction de lecture, mais après que tout laisser tomber? Pourquoi vous ne lisez et ne pas écrire quoi que ce soit? Pour le morceau d'un traitement basé sur le lecteur et l'écrivain sont obligatoires, seul le processeur est en option, ce qui rend le sentiment que la lecture sans écriture n'a pas vraiment de sens...
comment la tasklet n'a pas fonctionné pour vous? Je suis l'appel d'une procédure dans une tasklet, et il fonctionne très bien. Si vous n'avez pas besoin (pourquoi jamais vous avez besoin d') morceau basé sur la lecture, pourquoi pas un simple tasklet alors?
comment la tasklet n'a pas fonctionné pour vous? Je suis l'appel d'une procédure dans une tasklet, et il fonctionne très bien. Si vous n'avez pas besoin (pourquoi jamais vous avez besoin d') morceau basé sur la lecture, pourquoi pas un simple tasklet alors?
OriginalL'auteur user3247376 | 2014-10-05
Vous devez vous connecter pour publier un commentaire.
Pour morceau-en fonction de l'étape de lecture et d'écriture sont obligatoires.
Si vous ne voulez pas un écrivain utiliser un Pas d'opération de ItemWriter qui ne fait rien.
EDIT:
Un no-op de la mise en œuvre est un vide de mise en œuvre de l'interface tha ne fait...rien!
Il suffit de laisser votre classe implémente desiderable interface(s) avec des méthodes vides.
No-op ItemWriter:
Merci beaucoup..rendu compte de la mise en œuvre avant que vous avez posté NoOpItemWriter.. ou plutôt après que j'ai posté la question pour le même ..Merci de toute façon..:)
Basso Ricci - Puisqu'il est nécessaire de préciser d'entrée et de sortie types de processeur et le type d'entrée pour l'écrivain aussi de sorte à ce processeur est de retour
null
assez de place ici? Aussi, puisque rien n'est écrit ici est-il donc judicieux de spécifier la taille de segment plus haut possible? Des suggestions sur la taille de bloc/validation de l'intervalle de valeur?Envie d'ajouter que tout cela fonctionne pour itemwriter, il ne fonctionnera PAS pour les itemreader. une tasklet est nécessaire dans l'autre sens. les détails dans ce post: stackoverflow.com/questions/48590704/...
OriginalL'auteur Luca Basso Ricci
J'espère que vous avez obtenu de réponse, mais je veux l'expliquer pour les autres lecteurs, Lorsque nous utilisons morceau ensuite, généralement, nous déclarons lecteur, de processeur et de l'écrivain. Dans le bloc de lecture et d'écriture sont obligatoires et le processeur est en option. Dans votre cas, si vous n'avez pas besoin d'écrivain alors u besoin de faire une classe qui implémente ItemWriter. Remplacer la méthode d'écriture et de le garder vide. Maintenant, créez un bean de l'écrivain de classe et de passer en tant que référence de l'écrivain.
Votre classe writer va ressembler .
}
OriginalL'auteur Ashok Singh
Dans repo maven vous pouvez trouver le cadre des "printemps-lot-échantillons".
Dans ce cadre, vous trouverez cet Écrivain :
OriginalL'auteur user2065095