Spring Batch Boot Rowcount в нижнем колонтитуле - PullRequest
0 голосов
/ 07 августа 2020

*** Im newb ie для загрузки Spring.

Я хочу вывести количество строк в нижний колонтитул.

Мне нужно добавить переменную count в нижний колонтитул - setFooterCallback () как показано ниже. В настоящее время он принимает значение null. Есть идеи?

============================= ItemCountListner. java

public class ItemCountListener implements ChunkListener {

 
@Override
public void beforeChunk(ChunkContext context) {
}

@Override
public void afterChunk(ChunkContext context) {
     
    int count = context.getStepContext().getStepExecution().getReadCount();
    
    System.out.println("ItemCount: " + count);
}
 
@Override
public void afterChunkError(ChunkContext context) {
}

=======================================

BatchConfig.java
  
  @Bean 
  public Step step3() { return this.stepBuilderFactory.get("step3").<Memdetail,Memdetail>chunk(20)
  .reader(itemReader()) 
  .writer(FFwriter())
  .listener(listener())
  .build(); }

 @Bean
 public ItemCountListener listener() { return new ItemCountListener();}
 

@Bean
public FlatFileItemWriter<Memdetail> FFwriter() {
        
        FlatFileItemWriter<Memdetail> ffwriter = new FlatFileItemWriter<Memdetail>();
        
        ffwriter.setResource(new FileSystemResource(fileName));
        
        ffwriter.setHeaderCallback(new MemDetailHeaderCallback(cag));
        
        ffwriter.setFooterCallback(new MemDetailFooterCallback(xxxx));
                    
        ffwriter.setLineAggregator(new DelimitedLineAggregator<Memdetail>() {
            {
                
                setFieldExtractor(new BeanWrapperFieldExtractor<Memdetail>() {
                    {
                        setNames(new String[] { "MBRdtls" });
                    }
                });
            }
        });

        return ffwriter;
    }
...