programming/Spring Batch

Spring Batch) FlatFileItemReader

코딩하는 핑가 2023. 12. 29. 10:25
반응형
  1. FlatFileItemReader
    1. 구조
    2. API
      1. Resource
        1. FileSystemResource - new FileSystemResource(“resource/path/config.xml“)
        2. ClassPathResource - new ClassPathResource(“classpath:path/config.xml“)
      2. LineMapper
        1. 파일의 라인 한줄을 Object로 변환해서 FlatFileItemReader로 리턴
        2. 단순히 문자열을 받기 때문에 문자열을 토큰화해서 객체로 매핑하는 과정이 필요
        3. LineTokenizer와 FieldSetMaper를 사용해서 처리
        4. FieldSet
          1. 라인을 필드로 구분해서 만들 배열 토큰을 전달하면 토큰 필드를 참조할 수 있도록 함
          2. JDBC의 ResultSet과 유사
            1. fs.readString(0), fs.readString(“name”)
        5. LineTokenizer
          1. 입력받은 라인을 FieldSet으로 변환해서 리턴
          2. 파일마다 형식이 다르기 떄문에 문자열을 FieldSet으로 변환하는 작업을 추상화시켜야함
        6. FieldSetMapper
          1. FieldSet 객체를 받아서 원하는 객체로 매핑해서 리턴
            1. 최종적으로 BlackFileReader에게 리턴
          2. JdbcTemplate의 RowMapper와 동일한 패턴을 사용
    3. LineMapper / LineTokenizer / FieldSetMapper 프로세스
반응형