Job Writer 설정

설명

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

사용법

Job Writer 구성

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


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


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


제공하는 Job Writer별 설명

DelimitedFlatFileItemWriter

  • DelimitedFlatFileItemWriter 선택시 마법사


  • DelimitedFlatFileItemWriter 사용시 대상 XML 설정
<bean id="TestJob.TestStep1.DelimitedFlatFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="resource" value="file:./target/test_output/output.csv" />
        <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
                <property name="fieldExtractor">
                    <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                        <property name="names" value="name,credit" />
                    </bean>
                </property>
                <property name="delimiter" value="," />
            </bean>
        </property>
    </bean>

FormatterFlatFileItemWriter

  • FormatterFlatFileItemWriter 선택시 마법사


  • FormatterFlatFileItemWriter 사용시 대상 XML 설정
    <bean id="TestJob.TestStep.FormatterFlatFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="resource" value="file:./target/test_output/output.txt" />
        <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.FormatterLineAggregator">
                <property name="fieldExtractor">
                    <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                        <property name="names" value="name,credit" />
                    </bean>
                </property>
                <property name="format" value="%-9s%-6s" />
            </bean>
        </property>
    </bean>

EgovDelimitedFlatFileItemWriter

  • EgovDelimitedFlatFileItemWriter선택시 마법사


  • EgovDelimitedFlatFileItemWriter사용시 대상 XML 설정
<bean id="TestJob.TestStep.EgovDelimitedFlatFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="resource" value="file:./target/test_output/output.csv" />
        <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
                <property name="fieldExtractor">
                    <bean class="egovframework.brte.core.item.file.transform.EgovFieldExtractor">
                        <property name="names" value="name,credit" />
                    </bean>
                </property>
                <property name="delimiter" value="," />
            </bean>
        </property>
    </bean>

EgovFixedFlatFileItemWriter

  • EgovFixedFlatFileItemWriter 선택시 마법사


  • EgovFixedFlatFileItemWriter 사용시 대상 XML 설정
    <bean id="TestJob.TestStep.EgovFixedFlatFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="resource" value="file:./target/test_output/output.txt" />
        <property name="lineAggregator">
            <bean class="egovframework.brte.core.item.file.transform.EgovFixedLengthLineAggregator">
                <property name="fieldExtractor">
                    <bean class="egovframework.brte.core.item.file.transform.EgovFieldExtractor">
                        <property name="names" value="name,credit" />
                    </bean>
                </property>
                <property name="fieldRanges" value="9,6" />
            </bean>
        </property>
    </bean>

DelimitedMultiResourceItemWriter

  • DelimitedMultiResourceItemWriter 선택시 마법사


  • DelimitedMultiResourceItemWriter 사용시 대상 XML 설정
 <bean id="TestJob.TestStep.delegateWriter" class="org.springframework.batch.item.file.MultiResourceItemWriter" scope="step">
        <property name="resource" value="file:./target/test_output/*.csv" />
        <property name="itemCountLimitPerResource" value="10" />
        <property name="delegate" ref="TestJob.TestStep.delegateWriter" />
 </bean>
 <bean id="TestJob.TestStep.delegateWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
                <property name="fieldExtractor">
                    <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                        <property name="names" value="name, credit" />
                    </bean>
                </property>
                <property name="delimiter" value="," />
            </bean>
        </property>
    </bean>

FormatterMultiResourceItemWriter

  • FormatterMultiResourceItemWriter 선택시 마법사


  • FormatterMultiResourceItemWriter 사용시 대상 XML 설정
 <bean id="TestJob.TestStep.delegateWriter" class="org.springframework.batch.item.file.MultiResourceItemWriter" scope="step">
        <property name="resource" value="file:./target/test_output/output.txt" />
        <property name="itemCountLimitPerResource" value="10" />
        <property name="delegate" ref="TestJob.TestStep.delegateWriter" />
 </bean>
 <bean id="TestJob.TestStep.delegateWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
     <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.FormatterLineAggregator">
                <property name="fieldExtractor">
                    <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                        <property name="names" value="name,credit" />
                    </bean>
                </property>
                <property name="format" value="%-9s%-6s" />
            </bean>
        </property>
    </bean>

EgovDelimitedMultiResourceItemWriter

  • EgovDelimitedMultiResourceItemWriter 선택시 마법사


  • EgovDelimitedMultiResourceItemWriter 사용시 대상 XML 설정
 <bean id="TestJob.TestStep.EgovDelimitedMultiResourceItemWriter" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
        <property name="resource" value="file:./target/test_output/output.csv" />
        <property name="itemCountLimitPerResource" value="10" />
        <property name="delegate" ref="TestJob.TestStep.delegateWriter" />
 </bean>
 <bean id="TestJob.TestStep.delegateWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">
                <property name="fieldExtractor">
                    <bean class="egovframework.brte.core.item.file.transform.EgovFieldExtractor">
                        <property name="names" value="name,credit" />
                    </bean>
                </property>
                <property name="delimiter" value="," />
            </bean>
        </property>
   </bean>

EgovFixedMultiResourceItemWriter

  • EgovFixedMultiResourceItemWriter 선택시 마법사


  • EgovFixedMultiResourceItemWriter 사용시 대상 XML 설정
<bean id="TestJob.TestStep.EgovFixedMultiResourceItemWriter" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
        <property name="resource" value="file:./target/test_output/output.txt" />
        <property name="itemCountLimitPerResource" value="10" />
        <property name="delegate" ref="TestJob.TestStep.delegateWriter" />
</bean>
<bean id="TestJob.TestStep.delegateWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
        <property name="lineAggregator">
            <bean class="egovframework.brte.core.item.file.transform.EgovFixedLengthLineAggregator">
                <property name="fieldExtractor">
                    <bean class="egovframework.brte.core.item.file.transform.EgovFieldExtractor">
                        <property name="names" value="name,credit" />
                    </bean>
                </property>
                <property name="fieldRanges" value="9,6" />
            </bean>
        </property>
</bean>

CustomizeFileWriter

  • CustomizeFileWriter 선택시 마법사
    ✔ 사용자가 만든 File Writer를 사용하고 싶을 경우, Preference에서 사용자가 만든 Writer클래스를 등록하고 여기서 해당 이름을 찾아 적용시킨다.


IbatisBatchItemWriter

  • IbatisBatchItemWriter 선택시 마법사


  • IbatisBatchItemWriter 사용시 대상 XML 설정
<bean id="IbatisBatchItemWriter" class="org.springframework.batch.item.database.IbatisBatchItemWriter">
	<property name="statementId" value="updateCredit" />
        <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>

SqlParameterJdbcBatchItemWriter

  • SqlParameterJdbcBatchItemWriter 선택시 마법사


  • SqlParameterJdbcBatchItemWriter 사용시 대상 XML 설정
<bean id="SqlParameterJdbcBatchItemWriter " class="org.springframework.batch.item.database.JdbcBatchItemWriter">
	<property name="assertUpdates" value="true" />
	<property name="itemSqlParameterSourceProvider">
		<bean class="org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider" />
	</property>
	<property name="sql" value="UPDATE CUSTOMER set credit = :credit where id = :id" />
	<property name="dataSource" ref="dataSource" />
</bean>

ItemPreparedStatementJdbcBatchItemWriter

  • ItemPreparedStatementJdbcBatchItemWriter 선택시 마법사


  • ItemPreparedStatementJdbcBatchItemWriter 사용시 대상 XML 설정
<bean id="ItemPreparedStatementJdbcBatchItemWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter">
        <property name="itemPreparedStatementSetter">
            <bean class="클래스찾기로 찾은 사용자 지정 세터" />
        </property>
        <property name="sql" value="INSERT INTO customer (name, credit) VALUES (?,?)" />
        <property name="dataSource" ref="dataSource" />
</bean>

✔ItemPreparedStatementSetter로 지정 된 클래스는 spring의 ItemPreparedStatementSetter나 EgovItemPreparedStatementSetter클래스를 상속받아야 한다.

EgovItemPreparedStatementJdbcBatchItemWriter

  • EgovItemPreparedStatementJdbcBatchItemWriter 선택시 마법사


  • EgovItemPreparedStatementJdbcBatchItemWriter 사용시 대상 XML 설정
<bean id="EgovItemPreparedStatementJdbcBatchItemWriter" class="egovframework.brte.core.item.database.EgovJdbcBatchItemWriter">
        <property name="itemPreparedStatementSetter">
            <bean class="egovframework.brte.core.item.database.support.EgovMethodMapItemPreparedStatementSetter" />
        </property>
        <property name="sql" value="INSERT INTO customer (name, credit) VALUES(?,?)" />
        <property name="params" value="name,credit" />
        <property name="dataSource" ref="dataSource" />
</bean>

EgovCustomizedJdbcBatchItemWriter

  • EgovCustomizedJdbcBatchItemWriter 선택시 마법사


  • EgovCustomizedJdbcBatchItemWriter 사용시 대상 XML 설정
<bean id="EgovCustomizedJdbcBatchItemWriter" class="org.springframework.batch.item.database.EgovJdbcBatchItemWriter">
        <property name="itemPreparedStatementSetter">
            <bean class="클래스찾기로 찾은 사용자 지정 세터" />
        </property>
        <property name="sql" value="INSERT INTO customer (name, credit) VALUES (?,?)" />
        <property name="dataSource" ref="dataSource" />
</bean>

✔itemPreparedStatementSetter로 지정 된 클래스는 전자정부 표준프레임워크의 EgovItemPreparedStatementSetter 클래스를 상속받아야 한다.

CustomizeDBWriter

  • CustomizeDBWriter 사용시 대상 XML 설정
    ✔ 사용자 임의 지정 Writer를 등록하고 싶을 경우 사용하는 항목입니다.


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

구분 항목명 설명
FileResource출력 대상이 되는 File의 경로와 File명 설정
FileField Name구분자, 고정길이 등에 의해 구분되어 Mapping 된 VO의 Field 이름
FileDelimiter구분자 방식으로 쓰기 위한 구분자 값 설정
FileField Format쓰여질 아이템의 포맷
FileField Range쓰여질 아이템 길이
FileMax Count per Resource한개의 파일에 들어갈 수 있는 아이템 최대 라인수
DBiBatis Statement사용자가 정의 해놓은 iBatis 설정 파일에서 사용할 쿼리 ID
DBConfiguration FileSqlMapCofig 설정 파일 경로 및 파일명 설정
DBDatasource Bean ID DB연결을 위해 사용할 데이터소스의 빈ID
DBSqlDB에 아이템을 쓰기위한 쿼리문
DBParams쿼리의 '?' 부분에 들어갈 파라메터 이름
DBRow SetterPreparedStatement에 셋팅시키는 아이템을 셋팅시키는 Setter 클래스

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

  1. Batch Job Wizard에서 새로운 배치 작업 파일 생성시 Step Add의 Writer 항목 우측 Add 버튼을 클릭한다.
    ✔ Writer를 등록하기 이전이기 때문에 마법사에 Writer를 등록시켜야 한다는 메시지가 마법사 상단에 출력됩니다.


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


참고사항

  • 전자정부 표준프레임워크 배치개발환경에서 제공하는 기본 Job Writer 항목
구분 항목명 설명 항목의 하위 구성 요소
File DelimitedFlatFileItemWriter 스프링에서 제공하는 Aggregator 와 Extractor를 사용하여 데이터를 구분자로 구분하여 파일에 쓰는 라이터 org.springframework.batch.item.file.FlatFileItemWriter,
org.springframework.batch.item.file.transform.DelimitedLineAggregator,
org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor
File FormatterFlatFileItemWriter 스프링에서 제공하는 Aggregator 와 Extractor를 사용하여 데이터를 정의된 포맷형식으로 파일에 쓰는 라이터 org.springframework.batch.item.file.FlatFileItemWriter,
org.springframework.batch.item.file.transform.FormatterLineAggregator,
org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor
File EgovDelimitedFlatFileItemWriter 스프링에서 제공하는 Aggregator 와 전자정부 표준프레임워크에서 제공하는 Extractor를 사용하여 데이터를 구분자로 구분하여 파일에 쓰는 라이터 org.springframework.batch.item.file.FlatFileItemWriter,
org.springframework.batch.item.file.transform.DelimitedLineAggregator,
egovframework.brte.core.item.file.transform.EgovFieldExtractor
File EgovFixedFlatFileItemWriter 전자정부 표준프레임워크 제공하는 Aggregator 와 Extractor를 사용하여 데이터를 정의된 고정길이로 잘라 파일에 쓰는 라이터 org.springframework.batch.item.file.FlatFileItemWriter,
egovframework.brte.core.item.file.transform.EgovFixedLengthLineAggregator,
egovframework.brte.core.item.file.transform.EgovFieldExtractor
File DelimitedMultiResourceItemWriter 스프링에서 제공하는 Aggregator 와 Extractor를 사용하여 데이터를 구분자로 구분하여 파일에 쓰는 라이터이며, 한 파일에 정의된 수만큼 데이터를 씀 (한 개 이상의 파일이 생성됨) org.springframework.batch.item.file.MultiResourceItemReader,
org.springframework.batch.item.file.transform.DelimitedLineAggregator,
org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor
File FormatterMultiResourceItemWriter 스프링에서 제공하는 Aggregator 와 Extractor를 사용하여 데이터를 정의된 포맷형식으로 파일에 쓰는 라이터이며, 한 파일에 정의된 수만큼 데이터를 씀 (한 개 이상의 파일이 생성됨) org.springframework.batch.item.file.MultiResourceItemReader,
org.springframework.batch.item.file.transform.FormatterLineAggregator,
org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor
File EgovDelimitedMultiResourceItemWriter 스프링에서 제공하는 Aggregator 와 전자정부 표준프레임워크에서 제공하는 Extractor를 사용하여 데이터를 구분자로 구분하여 파일에 쓰는 라이터이며, 한 파일에 정의된 수만큼 데이터를 씀 (한 개 이상의 파일이 생성됨) org.springframework.batch.item.file.MultiResourceItemReader,
org.springframework.batch.item.file.transform.DelimitedLineAggregator,
egovframework.brte.core.item.file.transform.EgovFieldExtractor
File EgovFixedMultiResourceItemWriter 전자정부 표준프레임워크 제공하는 Aggregator 와 Extractor를 사용하여 데이터를 정의된 고정길이로 잘라 파일에 쓰는 라이터이며, 한 파일에 정의된 수만큼 데이터를 씀 (한 개 이상의 파일이 생성됨) org.springframework.batch.item.file.MultiResourceItemReader,
egovframework.brte.core.item.file.transform.EgovFixedLengthLineAggregator,
egovframework.brte.core.item.file.transform.EgovFieldExtractor
File CustomizeFileWriter 사용자가 등록한 파일 라이터 사용자 정의
DB IbatisBatchItemWriter 스프링에서 제공하는 SqlMapClient를 사용하여 데이터를 Ibatis방식으로 DB에 쓰는 라이터 org.springframework.batch.item.database.IbatisBatchItemWriter,
org.springframework.orm.ibatis.SqlMapClientFactoryBean
DB SqlParameterJdbcBatchItemWriter 스프링에서 제공하는 SqlProvider를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터 org.springframework.batch.item.database.JdbcBatchItemWriter,
org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider
DB ItemPreparedStatementJdbcBatchItemWriter 스프링에서 제공하는 Setter 를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터 org.springframework.batch.item.database.JdbcBatchItemWriter,
org.springframework.batch.item.database.ItemPreparedStatementSetter
DB EgovItemPreparedStatementJdbcBatchItemWriter 전자정부 표준프레임워크에서 제공하는 Setter 를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터 egovframework.brte.core.item.database.EgovJdbcBatchItemWriter,
egovframework.brte.core.item.database.EgovItemPreparedStatementSetter
DB EgovCustomizedJdbcBatchItemWriter 전자정부 표준프레임워크의 Setter를 상속받아 재정의한 Setter를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터 egovframework.brte.core.item.database.EgovJdbcBatchItemWriter,
EgovItemPreparedStatementSetter나 ItemPreparedStatementSetter 를 상속받아 작성한 클래스
DB CustomizeDBWriter 사용자가 등록한 DB 라이터 사용자 정의
 
egovframework/dev2/bdev/imp/create_batch_job_wizard/job_writer_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