@Configuration
class BatchConfig(
private val jobRepository: JobRepository,
private val transactionManager: PlatformTransactionManager
) {
@Bean
fun dataTerminationJob(terminateStep: Step): Job =
JobBuilder("dataTerminationJob", jobRepository)
.start(terminateStep)
.build()
@Bean
fun terminateStep(
itemReader: ItemReader<String>,
itemWriter: ItemWriter<String>
): Step =
StepBuilder("terminateStep", jobRepository)
.chunk<String, String>(10, transactionManager)
.reader(itemReader)
.writer(itemWriter)
.build()
@Bean
fun itemReader(): ItemReader<String> {
// ItemReader 구현체 반환
return ListItemReader(listOf("a", "b", "c")) // 예시
}
@Bean
fun itemWriter(): ItemWriter<String> {
// ItemWriter 구현체 반환
return ItemWriter { items -> items.forEach { println("write: $it") } }
}
}