Springbatch headerCallback 居然是在processor之前执行的

今天遇到一个奇怪的问题,在一个step里有一个chunk,还有一个step的listener,这个listener实际上是一个headerCallback,这个headerCallback里面有一个@beforeStep方法和一个writerHeader方法:

  @BeforeStep
    public void beforeStep(StepExecution stepExecution) {
        this.stepExecution = stepExecution;
    }

    @Override
    public void writeHeader(Writer writer) throws IOException {
        //略
    }

 

然后在chunk的writer里面,也引用了这个类:

<bean id="trustActBatTrsFileWriter"
        class="org.springframework.batch.item.support.CompositeItemWriter"
        scope="step">
        <property name="delegates">
            <list>
                <bean class="org.springframework.batch.item.file.FlatFileItemWriter">
                    <property name="resource"
                        value="file:#{jobParameters[uploadFilePath]}#{jobParameters[uploadFileName]}.txt" />
                    <property name="lineAggregator">
                        <bean
                            class="com.csii.bank.core.batch.support.writer.PrefixSuffixDelimitedLineAggregator">
                            <property name="delimiter" value="|" />
                            <property name="delimiterAsSuffix" value="false" />
                            <property name="fieldExtractor">
                                <bean
                                    class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                                    <property name="names"               
                                        value="略" />
                                </bean>
                            </property>
                        </bean>
                    </property>
                    <property name="headerCallback" ref="trustActBatPayHeaderCallback"/>
                </bean>
            </list>
        </property>
    </bean>

 

然后我发现这个JOB执行的时候,一上来就执行了这个trustActBatPayHeaderCallback的@beforeStep方法,这很正常,因为他是step级别的监听器,而且是@beforeStep,但是,reader一结束立马就执行了,,立马又执行了writeHeader方法,,居然是在processor之前,颠覆了我的认知,

转载于:https://www.cnblogs.com/heben/p/7028660.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值