2

嘿,我的 spring 批处理应用程序上下文有点麻烦。我需要我的决策者能够查看通过作业启动器传递的作业参数。对于普通的tasklet,我会在一个方法上使用@beforeStep并通过它获取信息,我还将使用一个侦听器,以便tasklet可以像这样到达@beforeStep:

    <batch:step id="verifyDatabase" next="full.incremental.decision">
        <batch:tasklet ref="verifyDatabaseTasklet" />
        <batch:listeners>
            <batch:listener ref="verifyDatabaseTasklet" />
            <batch:listener ref="PromotionListener" />
        </batch:listeners>
    </batch:step>

但是,我希望能够对决定做同样的事情。像这样的东西:

    <batch:decision id="full.incremental.decision" decider="fullIncrementalDecider">
        <batch:next on="COMPLETED" to="incrementalUpdate" />
        <batch:next on="FAILED" to="fullUpdate" />
        <batch:listeners>
            <batch:listener ref="full.incremental.decision" />
        </batch:listeners>
    </batch:decision>

当我这样做时,我会收到此错误

 cvc-complex-type.2.4.a: Invalid content was found starting with 
 element 'batch:listeners'. One of '{"http://
 www.springframework.org/schema/batch":next, "http://
 www.springframework.org/schema/batch":stop, "http://
 www.springframework.org/schema/batch":end, "http://
 www.springframework.org/schema/batch":fail}' is expected.

我知道这可能意味着不允许听众参与决策?那是对的吗?无论如何我可以在我的 JobExecutionDecider 中访问我的 jobParameters 吗?

谢谢一堆

4

0 回答 0