2017-11-28 5 views
0

Konvertieren eines Spring Boot Batch-XML in Java Config, Versuch, den folgenden Code in Java Config zu ändern.Tasklet zum Konvertieren von Spring Batch XML in Java Config

Mein erster Versuch blieb in tasklet stecken, keine Ahnung, wie man tasklet dafür konfiguriert.

@Configuration 
@EnableBatchProcessing 
public class BatchJob { 

    @Autowired 
    private JobBuilderFactory jobs; 

    @Autowired 
    private StepBuilderFactory stepBuilderFactory; 

    @Autowired 
    @Qualifier("taskExecutor") 
    private ThreadPoolTaskExecutor taskExecutor; 

    @Value("${throttle.limit}") 
    private int throttleLimit; 


    @Bean 
    public Job batchProvision(){ 
     return jobs.get("batchJob1").start(provisionStep()).build(); 
    } 

    @Bean 
    public Step step(){ 
     return stepBuilderFactory.get("provisionStep").tasklet(); 
    }    
} 

Bitte Rat, wie ich Aufgaben in Java Config genauso wie in XML

Antwort

1

einstellen kann ich nicht in der Lage bin zu verstehen, wo Sie genau Problem konfrontiert sind. aber so können Sie Ihre Konfiguration von XML nach Java konvertieren. Hope this

@Bean 
    public ItemProcessor<POJO, POJO> myProcessor1() { 
     return new myProcessor1(); 
    } 

    @Bean 
    public ItemProcessor<POJO, POJO> myProcessor2() { 
     return new myProcessor2(); 
    } 

    @Bean 
    public ItemProcessor<POJO, POJO> myProcessor3() { 
     return new myProcessor3(); 
    } 

    @Bean 
    public CompositeItemProcessor<POJO, POJO> mYCompositeItemProcessor() { 
     CompositeItemProcessor<POJO, POJO> mYCompositeItemProcessor = new CompositeItemProcessor<>(); 
     List<ItemProcessor<POJO, POJO>> list = new ArrayList<>(); 
     list.add(myProcessor1()); 
     list.add(myProcessor2()); 
     list.add(myProcessor3());  
     mYCompositeItemProcessor.setDelegates(list); 
     return mYCompositeItemProcessor; 
    } 



    @Bean 
    public Job myJob(JobBuilderFactory jobs) throws Exception { 
     return jobs.get("myJob") 
       .start(step1()) 
       .build() 
       .listener(myjobListener) 
       .build(); 

    } 
    @Bean 
    public TaskExecutor taskExecutor() { 
     ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();  
     taskExecutor.setCorePoolSize(5); 
     taskExecutor.setMaxPoolSize(5); 
     taskExecutor.setQueueCapacity(5); 
     taskExecutor.afterPropertiesSet(); 
     return taskExecutor; 
    } 

    @Bean 
    public Step step1(StepBuilderFactory stepBuilderFactory,) { 
     return stepBuilderFactory.get("step1").listener(mYCompositeItemProcessor()) 
       .<POJO, POJO> chunk(50).listener(ChunkListenerbean) 
       .reader(temReaderbean).listener(ItemReadListener) 
       .processor(mYCompositeItemProcessor()).listener(ItemProcessListener) 
       .writer(writerBean).listener(ItemWriteListenerbean).listener(SkipListenerbean).faultTolerant() 
       .skip(Exception.class).skipLimit(10) 
       .taskExecutor(taskExecutor()) 
       .build(); 
    } 
+0

hilft Wie kann i = Commit-Intervall "$ {commit.interval}" –

+0

denke ich in Java Config Chunk Größe ist nichts anderes als Commit-Intervall. – Niraj

Verwandte Themen