- 파일 기반 배치 처리 - 많은 시스템에서 여전히 파일 기반 데이터 처리가 중요한 역할을 한다 - 예를 들어, 금융 거래 내역이 담긴 CSV 파일이나, 고객 데이터 파일(XML/JSON) 같은 것들이 있다. - 이런 데이터는 주기적으로 처리되어 시스템에 통합되거나 보고서로 만들어진다. - 파일 처리의 실체 - 직접 구현 하면 이런 고통을 맛보게 된다 -...
read() 메서드의 핵심 동작은 크게 두 단계로 이뤄진다
// FlatFileItemReader.doRead()
...
String line = readLine(); // 한 줄의 데이터를 읽어온다
...
// 문자열을 도메인 객체로 변환해 리턴한다
return lineMapper.mapLine(line, lineCount);// DefaultLineMapper.java
@Override
public T mapLine(String line, int lineNumber) throws Exception {
FieldSet fieldSet = tokenizer.tokenize(line); // 1단계 : 문자열을 토큰화해 FieldSet 반환
return fieldSetMapper.mapFieldSet(fieldSet); // 2단계: FieldSet을 객체로 매핑
}tokens)와 각 데이터를 객체의 어떤 프로퍼티에 매핑할지 나타내는 프로퍼티의 이름 목록(names)을 가지고 있다.names)은 FlatFileItemReader를 구성할 떄 우리가 미리 지정하는 값이다mapFieldSet() 메서드는 LineTokenizer가 만든 FieldSEt 객체를 입력 받아 우리가 원하는 자바 객체로 최종 변환한다BeanWrapperFieldSetMapper 이다.
setter를 호출해서 데이터를 설정MultiResourceItemReader라는 무기를 제공