Job Reader 설정

설명

배치 수행시 사용되는 입력 데이터를 등록하여 사용할 수 있는 관리 환경을 제공한다.

사용법

Job Reader 구성

  1. 메뉴 표시줄에서 Window > Preferences를 선택한다.


  2. Preferences 페이지의 우측 목록에서 eGovFrame > Batch > Job Reader/Writer를 선택하고 Job Reader 탭을 선택 후 New 버튼을 클릭하여 새로운 Job Reader 를 추가한다.


  3. 등록하기 위한 Job Reader 이름을 지정하고 해당 Resource Type과 ReaderType 선택후 확인버튼을 클릭하여 Job Reader 를 추가한다.
    ✔ Job Reader 등록시 중복되는 Name은 등록할 수 없다.

제공하는 Job Reader별 설명

FixedFlatFileItemReader

  • FixedFlatFileItemReader 선택시 마법사


  • FixedFlatFileItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep1.FixedFlatFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
      <property name="resource" value="file:./src/main/resources/egovframework/batch/data/inputs/txtData.txt" />
        <property name="lineMapper">
            <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
                <property name="lineTokenizer">
                    <bean class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
                        <property name="names" value="name, credit" />
                        <property name="columns" value="1-9, 10-11" />
                    </bean>
                </property>
                <property name="fieldSetMapper">
                    <bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
                        <property name="targetType" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                    </bean>
                </property>
            </bean>
        </property>
</bean>

DelimitedFlatFileItemReader

  • DelimitedFlatFileItemReader 선택시 마법사


  • DelimitedFlatFileItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep2.DelimitedFlatFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
    <property name="resource" value="file:./src/main/resources/egovframework/batch/data/inputs/csvData.csv" />
    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    <property name="delimiter" value="," />
                    <property name="names" value="name,credit" />
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
                    <property name="targetType" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

EgovFixedFlatFileItemReader

  • EgovFixedFlatFileItemReader 선택시 마법사


  • EgovFixedFlatFileItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep3.EgovFixedFlatFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
    <property name="resource" value="file:./src/main/resources/egovframework/batch/data/inputs/txtData.txt" />
    <property name="lineMapper">
        <bean class="egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="egovframework.brte.core.item.file.transform.EgovFixedLengthTokenizer">
                    <property name="columns" value="1-9,10-11" />
                </bean>
            </property>
            <property name="objectMapper">
                <bean class="egovframework.brte.core.item.file.mapping.EgovObjectMapper">
                    <property name="type" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                    <property name="names" value="name,credit" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

EgovDelimitedFlatFileItemReader

  • EgovDelimitedFlatFileItemReader 선택시 마법사


  • EgovDelimitedFlatFileItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep4.EgovDelimitedFlatFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
    <property name="resource" value="file:./src/main/resources/egovframework/batch/data/inputs/csvData.csv" />
    <property name="lineMapper">
        <bean class="egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="egovframework.brte.core.item.file.transform.EgovDelimitedLineTokenizer">
                    <property name="delimiter" value="," />
                </bean>
            </property>
            <property name="objectMapper">
                <bean class="egovframework.brte.core.item.file.mapping.EgovObjectMapper">
                    <property name="type" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                    <property name="names" value="name,credit" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

FixedMultiResourceItemReader

  • FixedMultiResourceItemReader 선택시 마법사


  • FixedMultiResourceItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep5.FixedMultiResourceItemReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
    <property name="resources" value="file:./src/main/resources/egovframework/batch/data/inputs/*.txt" />
    <property name="delegate" ref="TestJob.TestStep5.delegatingReader" />
</bean>
<bean id="TestJob.TestStep5.delegatingReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
                    <property name="names" value="name,credit" />
                    <property name="columns" value="1-9,10-11" />
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
                    <property name="targetType" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

DelimitedMultiResourceItemReader

  • DelimitedMultiResourceItemReader 선택시 마법사


  • DelimitedMultiResourceItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep6.DelimitedMultiResourceItemReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
        <property name="resources" value="file:./src/main/resources/egovframework/batch/data/inputs/*.csv" />
        <property name="delegate" ref="TestJob.TestStep6.delegatingReader" />
</bean>
<bean id="TestJob.TestStep6.delegatingReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="lineMapper">
        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                    <property name="delimiter" value="," />
                    <property name="names" value="name,credit" />
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
                    <property name="targetType" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

EgovFixedMultiResourceItemReader

  • EgovFixedMultiResourceItemReader 선택시 마법사


  • EgovFixedMultiResourceItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep7.EgovFixedMultiResourceItemReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
        <property name="resources" value="file:./src/main/resources/egovframework/batch/data/inputs/*.txt" />
        <property name="delegate" ref="TestJob.TestStep7.delegatingReader" />
</bean>
<bean id="TestJob.TestStep7.delegatingReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="lineMapper">
        <bean class="egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="egovframework.brte.core.item.file.transform.EgovFixedLengthTokenizer">
                    <property name="columns" value="1-9,10-11" />
                </bean>
            </property>
            <property name="objectMapper">
                <bean class="egovframework.brte.core.item.file.mapping.EgovObjectMapper">
                    <property name="type" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                    <property name="names" value="name,credit" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

EgovDelimitedMultiResourceItemReader

  • EgovDelimitedMultiResourceItemReader 선택시 마법사


  • EgovDelimitedMultiResourceItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep.EgovDelimitedMultiResourceItemReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
        <property name="resources" value="file:./src/main/resources/egovframework/batch/data/inputs/*.csv" />
        <property name="delegate" ref="TestJob1.TestStep.delegatingReader" />
</bean>
<bean id="TestJob.TestStep.delegatingReader" class="org.springframework.batch.item.file.FlatFileItemReader">
    <property name="lineMapper">
        <bean class="egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper">
            <property name="lineTokenizer">
                <bean class="egovframework.brte.core.item.file.transform.EgovDelimitedLineTokenizer">
                    <property name="delimiter" value="," />
                </bean>
            </property>
            <property name="objectMapper">
                <bean class="egovframework.brte.core.item.file.mapping.EgovObjectMapper">
                    <property name="type" value="egovframework.brte.sample.domain.trade.CustomerCredit" />
                    <property name="names" value="name,credit" />
                </bean>
            </property>
        </bean>
    </property>
</bean>

CustomizeFileReader

  • CustomizeFileReader 선택시 마법사
    ✔ 사용자 임의 지정 Reader를 등록하고 싶을 경우 사용하는 항목입니다.


IbatisPagingItemReader

  • IbatisPagingItemReader 선택시 마법사


  • IbatisPagingItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep1.IbatisPagingItemReader" class="org.springframework.batch.item.database.IbatisPagingItemReader">
     <property name="queryId" value="getAllCustomerCredits" />
     <property name="sqlMapClient">
            <bean class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
                <property name="dataSource" ref="dataSource" />
                <property name="configLocation" value="file:./src/main/resources/egovframework/sqlmap/brte/sql-map-config.xml" />
            </bean>
     </property>
</bean>

CustomizedJdbcCursorItemReader

  • CustomizedJdbcCursorItemReader 선택시 마법사


  • CustomizedJdbcCursorItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep2.CustomizedJdbcCursorItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
    <property name="dataSource" ref="dataSource" />
    <property name="sql" value="SELECT name,credit FROM customer" />
    <property name="rowMapper">
        <bean class="egovframework.brte.sample.domain.trade.CustomerCreditRowMapper" />
    </property>
</bean>

SqlPagingQueryJdbcItemReader

  • SqlPagingQueryJdbcItemReader 선택시 마법사

  • SqlPagingQueryJdbcItemReader 사용시 대상 XML 설정
<bean id="TestJob.TestStep3.SqlPagingQueryJdbcItemReader" class="org.springframework.batch.item.database.JdbcPagingItemReader" scope="step">
    <property name="dataSource" ref="dataSource" />
    <property name="rowMapper">
        <bean class="egovframework.brte.sample.domain.trade.CustomerCreditRowMapper" />
    </property>
    <property name="queryProvider">
        <bean class="org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="sortKey" value="name" />
            <property name="selectClause" value="SELECT name,credit" />
            <property name="fromClause" value="FROM customer" />
            <property name="whereClause" value="WHERE credit > :credit" />
            <property name="pageSize" value="2" />
        </bean>
    </property>
    <property name="parameterValues">
            <map>
                <entry key="credit" value="10000" />
            </map>
    </property>
</bean>

CustomizeDBReader

  • CustomizeDBReader 선택시 마법사
    ✔ 사용자 임의 지정 Reader를 등록하고 싶을 경우 사용하는 항목입니다.


각 마법사내 입력 항목에 대한 설명

구분 항목명 설명
File Resource 입력 대상이 되는 파일의 경로 및 파일명 설정
File Field Name 구분자, 고정길이 등에 의해 구분되어 Mapping 할 VO의 Field 설정
File Column Length 고정길이 방식으로 읽기 위한 고정길이 값 설정
File Delimiter 구분자 방식으로 읽기 위한 구분자 값 설정
File VO Class 데이터를 객체화 할 클래스 설정
DB iBatis Statement 사용자가 정의 해놓은 iBatis 설정 파일에서 사용할 쿼리 ID
DB Configuration File SqlMapCofig 설정 파일 경로 및 파일명 설정
DB Sql 데이터베이스에 접근할 쿼리 설정
DB Row Mapper ResultSet의 데이터를 VO로 Mapping 하도록 사용자가 RowMapper 인터페이스를 구현한 클래스
DB PageSize 쿼리 실행 시마다 데이터베이스에서 읽어오는 엔티티의 수 설정
DB Sql-SortColumn 쿼리 결과를 정렬하여 가져올 수 있는 기준 컬럼 설정
DB Sql-SELECT 쿼리의 SELECT 절
DB Sql-FROM 쿼리의 FROM 절
DB Sql-WHERE 쿼리의 WHERE 절
DB Datasource Bean ID 데이터베이스 연결을 위해 사용할 데이터소스의 빈ID
DB Database Type 데이터베이스 종류 설정

배치 작업 파일 생성시 Job Reader 적용

  1. Batch Job Wizard에서 새로운 배치 작업 파일 생성시 Step Add의 Reader 항목 우측 Add 버튼을 클릭한다.


  2. 기 설정된 Job Reader 항목 중 등록할 항목을 선택하고 OK 버튼을 클릭하여 Reader를 추가한다.


참고사항

  • 전자정부 표준프레임워크 배치개발환경에서 제공하는 기본 Job Reader 항목
구분항목명설명항목의 하위 구성 요소
File FixedFlatFileItemReader 스프링에서 제공하는 LineMapper, Tokenizer, FieldSetMapper를 사용하여 파일의 데이터를 고정길이 방식으로 읽는 ItemReader org.springframework.batch.item.file.FlatFileItemReader,
org.springframework.batch.item.file.mapping.DefaultLineMapper,
org.springframework.batch.item.file.transform.FixedLengthTokenizer,
org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper
File DelimitedFlatFileItemReader 스프링에서 제공하는 LineMapper, Tokenizer, FieldSetMapper를 사용하여 파일의 데이터를 구분자 방식으로 읽는 ItemReader org.springframework.batch.item.file.FlatFileItemReader,
org.springframework.batch.item.file.mapping.DefaultLineMapper,
org.springframework.batch.item.file.transform.DelimitedLineTokenizer,
org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper
File EgovFixedFlatFileItemReader 전자정부에서 제공하는 LineMapper, Tokenizer, ObjectMapper를 사용하여 파일의 데이터를 고정길이 방식으로 읽는 성능 개선된 ItemReader org.springframework.batch.item.file.FlatFileItemReader,
egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper,
egovframework.brte.core.item.file.transform.EgovFixedLengthTokenizer,
egovframework.brte.core.item.file.mapping.EgovObjectMapper
File EgovDelimitedFlatFileItemReader 전자정부에서 제공하는 LineMapper, Tokenizer, ObjectMapper를 사용하여 파일의 데이터를 구분자 방식으로 읽는 성능 개선된 ItemReader org.springframework.batch.item.file.FlatFileItemReader,
egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper,
egovframework.brte.core.item.file.transform.EgovDelimitedLineTokenizer,
egovframework.brte.core.item.file.mapping.EgovObjectMapper
File FixedMultiResourceItemReader 스프링에서 제공하는 LineMapper, Tokenizer, FieldSetMapper를 사용하여 파일의 데이터를 고정길이 방식으로 읽는 ItemReader이며, 복수개의 파일을 읽음 org.springframework.batch.item.file.MultiResourceItemReader,
org.springframework.batch.item.file.mapping.DefaultLineMapper,
org.springframework.batch.item.file.transform.FixedLengthTokenizer,
org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper
File DelimitedMultiResourceItemReader 스프링에서 제공하는 LineMapper, Tokenizer, FieldSetMapper를 사용하여 파일의 데이터를 구분자 방식으로 읽는 ItemReader이며, 복수개의 파일을 읽음 org.springframework.batch.item.file.MultiResourceItemReader,
org.springframework.batch.item.file.mapping.DefaultLineMapper,
org.springframework.batch.item.file.transform.DelimitedLineTokenizer,
org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper
File EgovFixedMultiResourceItemReader 전자정부에서 제공하는 LineMapper, Tokenizer, ObjectMapper를 사용하여 파일의 데이터를 고정길이 방식으로 읽는 성능 개선된 ItemReader이며, 복수개의 파일을 읽음 org.springframework.batch.item.file.MultiResourceItemReader,
egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper,
egovframework.brte.core.item.file.transform.EgovFixedLengthTokenizer,
egovframework.brte.core.item.file.mapping.EgovObjectMapper
File EgovDelimitedMultiResourceItemReader 전자정부에서 제공하는 LineMapper, Tokenizer, ObjectMapper를 사용하여 파일의 데이터를 구분자 방식으로 읽는 성능 개선된 ItemReader이며, 복수개의 파일을 읽음 org.springframework.batch.item.file.MultiResourceItemReader,
egovframework.brte.core.item.file.mapping.EgovDefaultLineMapper,
egovframework.brte.core.item.file.transform.EgovDelimitedLineTokenizer,
egovframework.brte.core.item.file.mapping.EgovObjectMapper
File CustomizeFileReader 사용자가 등록한 파일 ItemReader 사용자 정의
DB IbatisPagingItemReader 스프링에서 제공하는 SqlMapClient를 사용하여 DB데이터를 Ibatis방식으로 읽는 ItemReader이며, 페이지 단위로 읽음 org.springframework.batch.item.database.IbatisPagingItemReader,
org.springframework.orm.ibatis.SqlMapClientFactoryBean
DB CustomizedJdbcCursorItemReader 사용자가 정의한 RowMapper 를 사용하여 DB데이터를 Jdbc방식으로 읽는 ItemReader이며, 커서 단위로 읽음 org.springframework.batch.item.database.JdbcCursorItemReader,
RowMapper를 상속 받아 구현한 사용자 지정 Mapper Class
DB SqlPagingQueryJdbcItemReader 스프링에서 제공하는 SqlProvider와 사용자가 정의한 RowMapper를 사용하여 DB데이터를 Jdbc방식으로 읽는 ItemReader이며, 페이지 단위로 읽음 org.springframework.batch.item.database.JdbcPagingItemReader,
RowMapper를 상속 받아 구현한 사용자 지정 Mapper Class,
org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean
DB CustomizeDBReader 사용자가 등록한 DB ItemReader 사용자 정의
 
egovframework/dev2/bdev/imp/create_batch_job_wizard/job_reader_mgmt.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki