====== Job Writer 설정 ======
===== 설명 =====
배치 수행시 사용되는 출력 데이터를 등록하여 사용할 수 있는 관리 환경을 제공한다. \\
===== 사용법 =====
==== Job Writer 구성 ====
- 메뉴 표시줄에서 **Window** > **Preferences**를 선택한다. \\ {{:egovframework:dev2:bdev:tst:batch_job_test_wizard:batchjobtstwizard_jobparameters_menu.png?600|}} \\ \\
- Preferences 페이지의 우측 목록에서 **eGovFrame** > **Batch** > **Job Reader/Writer**를 선택하고 **Job Writer 탭**을 선택 후 New 버튼을 클릭한다. \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:preferences_writer_new.png?600}} \\ \\
- 등록하기 위한 Job Writer 이름을 지정하고 해당 Resource Type과 WriterType 선택후 확인버튼을 클릭하여 Job Writer 를 추가한다. \\ ✔ Job Writer 등록시 중복되는 Name은 등록할 수 없다. \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:preferences_writer_register.png}} \\ \\
==== 제공하는 Job Writer별 설명 ====
=== DelimitedFlatFileItemWriter ===
* DelimitedFlatFileItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:delimitedflatfileitemwriter.png?450|}} \\ \\
* DelimitedFlatFileItemWriter 사용시 대상 XML 설정
== ==
=== FormatterFlatFileItemWriter ===
* FormatterFlatFileItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:formatterflatfileitemwriter.png?450|}} \\ \\
* FormatterFlatFileItemWriter 사용시 대상 XML 설정
== ==
=== EgovDelimitedFlatFileItemWriter===
* EgovDelimitedFlatFileItemWriter선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:egovdelimitedflatfileitemwriter.png?450|}} \\ \\
* EgovDelimitedFlatFileItemWriter사용시 대상 XML 설정
== ==
=== EgovFixedFlatFileItemWriter ===
* EgovFixedFlatFileItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:egovfixedflatfileitemwriter.png?450|}} \\ \\
* EgovFixedFlatFileItemWriter 사용시 대상 XML 설정
== ==
=== DelimitedMultiResourceItemWriter ===
* DelimitedMultiResourceItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:delimitedmultiresourceitemwriter.png?450|}} \\ \\
* DelimitedMultiResourceItemWriter 사용시 대상 XML 설정
== ==
=== FormatterMultiResourceItemWriter ===
* FormatterMultiResourceItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:formattermultiresourceitemwriter.png?450|}} \\ \\
* FormatterMultiResourceItemWriter 사용시 대상 XML 설정
== ==
=== EgovDelimitedMultiResourceItemWriter ===
* EgovDelimitedMultiResourceItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:egovdelimitedmultiresourceitemwriter.png?450|}} \\ \\
* EgovDelimitedMultiResourceItemWriter 사용시 대상 XML 설정
== ==
=== EgovFixedMultiResourceItemWriter ===
* EgovFixedMultiResourceItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:egovfixedmultiresourceitemwriter.png?450|}} \\ \\
* EgovFixedMultiResourceItemWriter 사용시 대상 XML 설정
== ==
=== CustomizeFileWriter ===
* CustomizeFileWriter 선택시 마법사 \\ ✔ 사용자가 만든 File Writer를 사용하고 싶을 경우, Preference에서 사용자가 만든 Writer클래스를 등록하고 여기서 해당 이름을 찾아 적용시킨다. \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:customizefileawriter.png?450|}} \\ \\
==== ====
=== IbatisBatchItemWriter ===
* IbatisBatchItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:ibatisbatchitemwriter.png?450|}} \\ \\
* IbatisBatchItemWriter 사용시 대상 XML 설정
=== SqlParameterJdbcBatchItemWriter ===
* SqlParameterJdbcBatchItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:sqlparameterjdbcbatchitemwriter.png?450|}} \\ \\
* SqlParameterJdbcBatchItemWriter 사용시 대상 XML 설정
=== ItemPreparedStatementJdbcBatchItemWriter ===
* ItemPreparedStatementJdbcBatchItemWriter 선택시 마법사 \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:itempreparedstatementjdbcbatchitemwriter.png?450|}} \\ \\
* ItemPreparedStatementJdbcBatchItemWriter 사용시 대상 XML 설정
✔ItemPreparedStatementSetter로 지정 된 클래스는 spring의 ItemPreparedStatementSetter나 EgovItemPreparedStatementSetter클래스를 상속받아야 한다.
=== EgovItemPreparedStatementJdbcBatchItemWriter ===
* EgovItemPreparedStatementJdbcBatchItemWriter 선택시 마법사\\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:egovitempreparedstatementjdbcbatchitemwriter.png?450|}} \\ \\
* EgovItemPreparedStatementJdbcBatchItemWriter 사용시 대상 XML 설정
=== EgovCustomizedJdbcBatchItemWriter ===
* EgovCustomizedJdbcBatchItemWriter 선택시 마법사\\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:egovcustomizedjdbcbatchitemwriter.png?450|}} \\ \\
* EgovCustomizedJdbcBatchItemWriter 사용시 대상 XML 설정
✔itemPreparedStatementSetter로 지정 된 클래스는 전자정부 표준프레임워크의 EgovItemPreparedStatementSetter 클래스를 상속받아야 한다.
=== CustomizeDBWriter ===
* CustomizeDBWriter 사용시 대상 XML 설정 \\ ✔ 사용자 임의 지정 Writer를 등록하고 싶을 경우 사용하는 항목입니다. \\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:customizedbwriter.png?450|}} \\ \\
=== 각 마법사내 입력 항목에 대한 설명 ===
== ==
^ 구분 ^ 항목명 ^ 설명 ^
|File|Resource|출력 대상이 되는 File의 경로와 File명 설정|
|File|Field Name|구분자, 고정길이 등에 의해 구분되어 Mapping 된 VO의 Field 이름|
|File|Delimiter|구분자 방식으로 쓰기 위한 구분자 값 설정|
|File|Field Format|쓰여질 아이템의 포맷|
|File|Field Range|쓰여질 아이템 길이|
|File|Max Count per Resource|한개의 파일에 들어갈 수 있는 아이템 최대 라인수|
|DB|iBatis Statement|사용자가 정의 해놓은 iBatis 설정 파일에서 사용할 쿼리 ID|
|DB|Configuration File|SqlMapCofig 설정 파일 경로 및 파일명 설정 |
|DB|Datasource Bean ID| DB연결을 위해 사용할 데이터소스의 빈ID|
|DB|Sql|DB에 아이템을 쓰기위한 쿼리문|
|DB|Params|쿼리의 '?' 부분에 들어갈 파라메터 이름|
|DB|Row Setter|PreparedStatement에 셋팅시키는 아이템을 셋팅시키는 Setter 클래스|
==== 배치 작업 파일 생성시 Job Writer 적용 ====
- [[egovframework:dev2:bdev:imp:create_batch_job_wizard#사용법|Batch Job Wizard]]에서 새로운 배치 작업 파일 생성시 Step Add의 Writer 항목 우측 **Add** 버튼을 클릭한다. \\ ✔ Writer를 등록하기 이전이기 때문에 마법사에 Writer를 등록시켜야 한다는 메시지가 마법사 상단에 출력됩니다.\\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:batchjobwizard_addwriter.png?450}} \\ \\
- 기 설정된 Job Writer 항목 중 등록할 항목을 선택하고 OK 버튼을 클릭하여 Writer를 추가한다.\\ {{:egovframework:dev2:bdev:imp:create_batch_job_wizard:batchjobwizard_donewriter.png?450|}} \\ \\
==== 참고사항 ====
* 전자정부 표준프레임워크 배치개발환경에서 제공하는 기본 Job Writer 항목 \\
== ==
^ 구분 ^ 항목명 ^ 설명 ^ 항목의 하위 구성 요소 ^
| File | [[#DelimitedFlatFileItemWriter|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|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|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|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|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|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|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|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|CustomizeFileWriter]] | 사용자가 등록한 파일 라이터 | 사용자 정의 |
| DB | [[#IbatisBatchItemWriter|IbatisBatchItemWriter]] |스프링에서 제공하는 SqlMapClient를 사용하여 데이터를 Ibatis방식으로 DB에 쓰는 라이터 | org.springframework.batch.item.database.IbatisBatchItemWriter,\\ org.springframework.orm.ibatis.SqlMapClientFactoryBean |
| DB | [[#SqlParameterJdbcBatchItemWriter|SqlParameterJdbcBatchItemWriter]] | 스프링에서 제공하는 SqlProvider를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터 | org.springframework.batch.item.database.JdbcBatchItemWriter,\\ org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider |
| DB | [[#ItemPreparedStatementJdbcBatchItemWriter|ItemPreparedStatementJdbcBatchItemWriter]] | 스프링에서 제공하는 Setter 를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터 | org.springframework.batch.item.database.JdbcBatchItemWriter, \\ org.springframework.batch.item.database.ItemPreparedStatementSetter |
| DB | [[#EgovItemPreparedStatementJdbcBatchItemWriter|EgovItemPreparedStatementJdbcBatchItemWriter]] |전자정부 표준프레임워크에서 제공하는 Setter 를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터| egovframework.brte.core.item.database.EgovJdbcBatchItemWriter,\\ egovframework.brte.core.item.database.EgovItemPreparedStatementSetter |
| DB | [[#EgovCustomizedJdbcBatchItemWriter|EgovCustomizedJdbcBatchItemWriter]] | 전자정부 표준프레임워크의 Setter를 상속받아 재정의한 Setter를 사용하여 데이터를 Jdbc방식으로 DB에 쓰는 라이터 | egovframework.brte.core.item.database.EgovJdbcBatchItemWriter,\\ EgovItemPreparedStatementSetter나 ItemPreparedStatementSetter 를 상속받아 작성한 클래스 |
| DB | [[#CustomizeDBWriter|CustomizeDBWriter]] | 사용자가 등록한 DB 라이터 | 사용자 정의 |