Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
hands-on-chunk-oriented-processing
✅ 1. 청크 2개씩 처리 실습
package com.system.batch;
@Slf4j
@Configuration
@RequiredArgsConstructor
public class SimpleChunkConfig {
private final JobRepository jobRepository;
private final PlatformTransactionManager transactionManager;
@Bean
public Job simpleJob(){
return new JobBuilder("simpleJob", jobRepository)
.start(simpleStep())
.build();
}
@Bean
public Step simpleStep(){
return new StepBuilder("simpleStep", jobRepository)
// <입력타입, 출력타입>chunk(한번에 처리할 개수)
.<String, String>chunk(2)
.reader(menuReader())
.processor(menuProcessor())
.writer(menuWriter())
.build();
}
// 1. ItemReader
@Bean
public ItemReader<String> menuReader(){
return new ListItemReader<>(Arrays.asList(
"ice americano", "latte", "mocha", "cappuccino", "espresso"
));
}
// 2. ItemProcessor
@Bean
public ItemProcessor<String, String> menuProcessor(){
return item -> item.toUpperCase();
}
// 3. Writer
@Bean
public ItemWriter<String> menuWriter(){
return items -> {
log.info("-- 청크 쓰기 시작 --");
for (String item : items) {
log.info("결과 : {}", item);
}
log.info("-- 청크 쓰기 완료 --");
};
}
}