복붙노트

[SPRING] 항목 작성기없이 스프링 배치 단계를 작성하는 방법

SPRING

항목 작성기없이 스프링 배치 단계를 작성하는 방법

아래의 구성을 사용하여 항목 작성기없이 스프링 배치 단계를 구성하려고합니다. 그러나 나는 작가에게 말하는 오류가 발생합니다.  요소에 '작성자'속성이나 요소가 없습니다.

나는 Link Spring batch : ItemWriter가없는 Tasklet을 살펴 보았다. 그러나 문제를 해결할 수 없습니다. 어느 누구나 내가 언급 한 코드 스 니펫에서 구체적인 변경 사항을 말해 줄 수 있습니까?

<batch:job id="helloWorldJob">
        <batch:step id="step1">
            <batch:tasklet>
                <batch:chunk reader="cvsFileItemReader"
                    commit-interval="10">
                </batch:chunk>
            </batch:tasklet>
        </batch:step>
    </batch:job>

    <bean id="cvsFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">

        <property name="resource" value="classpath:cvs/input/report.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="names" value="id,sales,qty,staffName,date" />
                    </bean>
                </property>
                <property name="fieldSetMapper">
                    <bean class="com.mkyong.ReportFieldSetMapper" />

                    <!-- if no data type conversion, use BeanWrapperFieldSetMapper to map by name
                    <bean
                        class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
                        <property name="prototypeBeanName" value="report" />
                    </bean>
                     -->
                </property>
            </bean>
        </property>

    </bean>

해결법

  1. ==============================

    1.청크 기반의 스텝 리더와 라이터는 필수입니다. 작가가 아무것도하지 않는 No-operation ItemWriter를 사용하기를 원하지 않는다면.

    청크 기반의 스텝 리더와 라이터는 필수입니다. 작가가 아무것도하지 않는 No-operation ItemWriter를 사용하기를 원하지 않는다면.

    편집하다: no-op 구현은 인터페이스의 빈 구현입니다. 수업을 통해 빈 방법으로 바람직한 인터페이스를 구현하도록하십시오.

    아니요 ItemWriter :

    public class NoOpItemWriter implements ItemWriter {
      void write(java.util.List<? extends T> items) throws java.lang.Exception {
        // no-op
      }
    }
    
  2. ==============================

    2.나는 당신이 대답을 얻길 희망하지만 나는 다른 독자들을 위해 그것을 설명하고 싶다. 우리가 청크를 사용할 때 보통 우리는 독자, 프로세서 및 작가를 선언한다. 청크 판독기 및 기록기에는 필수이며 프로세서는 선택 사항입니다. 귀하의 경우에는 작가가 필요하지 않으면 당신은 ItemWriter를 구현하는 클래스를 만들 필요가 있습니다. 쓰기 메소드를 대체하고 비워 둡니다. 이제 작가 클래스의 빈을 만들고이를 작가의 참조로 전달하십시오.

    나는 당신이 대답을 얻길 희망하지만 나는 다른 독자들을 위해 그것을 설명하고 싶다. 우리가 청크를 사용할 때 보통 우리는 독자, 프로세서 및 작가를 선언한다. 청크 판독기 및 기록기에는 필수이며 프로세서는 선택 사항입니다. 귀하의 경우에는 작가가 필요하지 않으면 당신은 ItemWriter를 구현하는 클래스를 만들 필요가 있습니다. 쓰기 메소드를 대체하고 비워 둡니다. 이제 작가 클래스의 빈을 만들고이를 작가의 참조로 전달하십시오.

    <batch:step id="recordProcessingStep" >
            <batch:tasklet>
                <batch:chunk reader="fileReader" processor="recordProcessor"
                    writer="rocordWriter" commit-interval="1" />
            </batch:tasklet>
        </batch:step>
    

    당신의 작가 수업은 마치 보일 것입니다.

    public class RecordWriter<T> implements ItemWriter<T> {
    @Override
    public void write(List<? extends T> items) throws Exception {
        // TODO Auto-generated method stub
    
    }
    

    }

  3. ==============================

    3.Maven 레포에서는 framework "spring-batch-samples"을 찾을 수 있습니다. 이 프레임 워크에서이 작성자를 찾을 수 있습니다.

    Maven 레포에서는 framework "spring-batch-samples"을 찾을 수 있습니다. 이 프레임 워크에서이 작성자를 찾을 수 있습니다.

    org.springframework.batch.sample.support.DummyItemWriter
    
  4. from https://stackoverflow.com/questions/26202241/how-to-write-a-spring-batch-step-without-an-itemwriter by cc-by-sa and MIT license