Spring Batch ‐ ItemWriter - dnwls16071/Backend_Summary GitHub Wiki
📚 FlatFileItemWriter
- 2차원 데이터로 표현된 유형의 파일을 처리하는 ItemWriter
- 고정 위치로 정의된 데이터 필드나 특수 문자에 의해 구별된 데이터 행을 기록
- Resource와 LineAggregator 두 가지 요소가 필요하다.
- LineAggregator
- PassThroughLineAggregator : 전달된 아이템을 단순히 문자열로 반환
- DelimitedLineAggregator : 전달된 배열을 구분자로 구분해 문자열로 합친다.
- FormatterLineAggregator : 전달된 배열을 고정 길이로 구분해 문자열로 합친다.
📚 FlatFileItemWriter - delimeted
- 객체 필드 사이에 구분자를 삽입해 한 문자열로 변환한다.
📚 FlatFileItemWriter - format
- 객체 필드를 사용자가 설정한 Formatter 구문을 통해 문자열로 변환한다.
📚 JsonFileItemWriter
- 객체를 받아 Json String으로 변환하는 역할을 한다.
📚 DB - JdbcBatchItemWriter
- JdbcCursorItemReader 설정과 마찬가지로 datasource를 지정하고 SQL 속성에 실행할 쿼리를 설정
- Jdbc의 Batch 기능을 사용하여 bulk insert/update/delete 방식으로 처리
- 단건 처리가 아닌 일괄처리기 때문에 성능상 이점을 가진다.
📚 DB - JpaItemWriter
- JPA Entity 기반으로 데이터를 처리하며 EntityManagerFactory를 주입받아 사용한다.
- Entity를 하나씩 Chunk 크기만큼 insert 혹은 merge한 다음 flush한다.
- ItemReader나 ItemProcessor로부터 아이템을 전달받을때는 Entity 클래스 타입으로 받아야 한다.
❗추가 학습 : ItemWriterAdapter