【发布时间】:2014-10-05 11:35:59
【问题描述】:
我正在尝试使用以下配置来配置没有项目编写器的弹簧批处理步骤。但是我得到错误说那个作家 元素既没有“writer”属性也没有元素。
我浏览了链接spring batch : Tasklet without ItemWriter。但无法解决问题。 谁能告诉我在我提到的代码 sn-p 中要进行的具体更改
<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>
【问题讨论】:
-
为什么你想要基于块的阅读,但之后放弃一切?为什么只看书不写东西?对于基于块的处理,读取器和写入器是强制性的,只有处理器是可选的,这很有意义,因为读取而不写入实际上没有意义......
-
为什么 tasklet 不适合你?我在一个小任务中调用一个过程,它工作得很好。如果你不需要(为什么你需要)基于块的阅读,那为什么不使用一个简单的 tasklet 呢?
标签: spring spring-batch