如何在没有编写器的情况下编写弹簧批处理步骤

use*_*376 9 spring spring-batch

我正在尝试使用下面的配置配置没有项目编写器的弹簧批处理步骤.但是我得到错误,说writer元素既没有'writer'属性也没有元素.

我经历了链接弹簧批处理:没有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>
Run Code Online (Sandbox Code Playgroud)

Luc*_*cci 9

对于基于块的步骤读取器和写入器是强制性的.
如果您不希望编写者使用无操作的ItemWriter,则不执行任何操作.

编辑:
一个无操作的实现是一个空的接口实现...没有!
让你的类用空方法实现可疑的接口.

No-op ItemWriter:

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