JAVA·Spring

Spring Batch에서 ItemReadListener가 걸리지 않을 때

무한열정 2023. 4. 3. 15:35

다음과 같은 상태에서 ItemReadListener가 걸리지 않았다.

    @Bean
    public Step step1() throws Exception {
        return stepBuilderFactory.get("step1")
                .chunk(100)
                .reader(pagingItemReader())
                //.reader(customItemReader())
                .listener(new CustomReadListener())
                .processor((ItemProcessor) item -> item)
                .listener(new CustomProcessListener())
                .writer(customItemWriter())
                .listener(new CustomWriteListener())
                .taskExecutor(taskExecutor())
//              .throttleLimit(2)
                .build();
    }

정석으로 Generic을 설정해야 하나

귀찮아서 생략하고 테스트하니 구동은 잘 되었다.

근데 ItemReadListener가 걸리지 않아 삽질을 좀 했다.

Input Chunk Type과 Output Chunk Type을 선언하여 주면 해결된다.

    @Bean
    public Step step1() throws Exception {
        return stepBuilderFactory.get("step1")
                .<Customer, Customer>chunk(100)
                .reader(pagingItemReader())
                //.reader(customItemReader())
                .listener(new CustomReadListener())
                .processor((ItemProcessor<Customer, Customer>) item -> item)
                .listener(new CustomProcessListener())
                .writer(customItemWriter())
                .listener(new CustomWriteListener())
                .taskExecutor(taskExecutor())
//                .throttleLimit(2)
                .build();
    }