2017-09-29 5 views
0

pendant une période de temps je suis à la recherche d'une solution pour résoudre un problème avec le lot de printemps. Je devrais utiliser le lot de printemps pour reproduire/créer de nouveaux fichiers CSV à partir de fichiers CSV. Voici un exemple:Est-il possible d'utiliser la liste <Object> au lieu de fichiers CSV dans le lot de printemps comme entrée

outPut | inPut 
------ | ------ 
File1 | source1 
File2 | source2 and source 3 
File3 | source1 and source2 
File4 | Csource3 

Voici un exemple pour créer le numéro de sortie un par exemple Fichier1:

@Bean 
     public Step step1() { 
      return stepBuilderFactory.get("createFile1") 
        .<source1, File1> chunk(10) 
        .reader(source1Reader()) 
        .processor(transformesource1ToFile1()) 
        .writer(File1Writer()) 
        .build(); 
     } 

Et cela, il sera le même pour les autres Produisez des fichiers, mais comme vous pouvez voir certaines sorties utilisent la même source, dans ce fait je ne peux pas lire deux fois les mêmes données pour repoduire une nouvelle sortie, donc j'ai essayé de les stocker comme ressource sur une carte (la ressource sera utilisée plus que les unes) avoir

List<source1>, List<source2>, List<source3> pour accéder à ces sources Encore une fois sans passer par le lecteur à chaque fois.

Maintenant, ma question est comment puis-je accéder/obtenir cette liste dans Spring Batch dans ItemProcessor/ItemWriter/itemReader?

peut injecter/transmettre ces listes à un itemProcessor comme ce fut le résultat retourné d'un itemReader

+0

Est-ce que quelqu'un peut me diriger dans la bonne direction, est-il possible de créer un lecteur personnalisé? –

Répondre