전체 글
-
22. ItemProcessorBackEnd/Spring Batch 2022. 1. 4. 21:25
CompositeItemProcessor ItemProcessor들을 연결(Chaining)해서 위임하면 각 ItemProcessor를 실행시킵니다. 이전 ItemProcessor 반환 값은 다음 ItemProcessor 값으로 연결됩니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.an..
-
21. ItemWriterAdapterBackEnd/Spring Batch 2021. 12. 31. 18:45
배치 Job 안에서 이미 존재하는 DAO나 다른 서비스를 ItemWriter 안에서 사용하고자 할 때 위임 역할을 합니다. setTargetObject에 존재하는 서비스를 setTargetMethod에 호출하려는 메서드명을 적용합니다. package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotatio..
-
20. ItemWriter (DB)BackEnd/Spring Batch 2021. 12. 31. 18:30
JdbcBatchItemWriter JdbcCursorItemReader 설정과 마찬가지로 datasource를 지정하고, sql 속성에 실행할 쿼리를 설정합니다. JDBC의 Batch 기능을 사용하여 bulk insert/update/delete 방식으로 처리합니다. 단건 처리가 아닌 일괄처리이기 때문에 성능에 이점을 가집니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; imp..
-
19. ItemWriter (Json)BackEnd/Spring Batch 2021. 12. 31. 17:55
JsonFileItemWriter 객체를 받아 JSON String으로 변환하는 역할을 합니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.launch.support..
-
18. ItemWriter (XML)BackEnd/Spring Batch 2021. 12. 31. 17:30
StaxEventItemWriter XML 쓰는 과정은 읽기 과정에 대칭적입니다. StaxEventItemWriter는 Resource, marshaller, rootTagName가 필요합니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactor..
-
17. ItemWriter (File)BackEnd/Spring Batch 2021. 12. 31. 17:00
FlatFileItemWriter 2차원 데이터(표)로 표현된 유형의 파일을 처리하는 ItemWriter입니다. 고정 위치로 정의된 데이터 필드나 특수 문자에 의해 구별된 데이터의 행을 기록합니다. Resource와 LineAggregator 두 가지 요소가 필요합니다. LineAggregator Item을 받아서 String으로 변환하여 리턴합니다. FieldExtractor를 사용해서 처리할 수 있으며, 구현체로는 PassThroughLineAggregator, DelimitedLineAggregator, FormatterLineAggregator가 있습니다. FieldExtractor 전달 받은 Item 객체의 필드를 배열로 만들고 배열을 합쳐서 문자열을 만들도록 구현하도록 제공하는 인터페이스입니다..
-
16. ItemReaderAdapterBackEnd/Spring Batch 2021. 12. 31. 00:50
배치 Job 안에서 이미 존재하는 DAO나 다른 서비스를 ItemReader 안에서 사용하고자 할 때 위임 역할을 합니다. setTargetObject에 존재하는 서비스를 setTargetMethod에 호출하려는 메서드명을 설정하면 됩니다. package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annota..
-
15. ItemReader (DB)BackEnd/Spring Batch 2021. 12. 31. 00:25
배치 애플리케이션은 실시간적 처리가 어려운 대용량 데이터를 다루며 이 때 DB I/O의 성능문제와 메모리 자원의 효율성 문제를 해결할 수 있어야 합니다. 스프링 배치에서는 대용량 데이터 처리를 위해 Cusor Based / Paging Based 두 가지 처리 방식을 제시하고 있습니다. Cursor Based 처리 JDBC ResultSet의 기본 메커니즘 사용 현재 행에 커서를 유지하며 다음 데이터를 호출하면 다음 행으로 커서를 이동하며 데이터 반환이 이루어지는 Streaming 방식의 I/O ResultSet이 open 될 때마다 next() 메소드가 호출되어 Database의 데이터가 반환되고 객체와 매핑이 이루어짐 DB Connection이 연결되면 배치 처리가 완료될 때까지 데이터를 읽어오기 때..