如何在 spring 批处理的 xml 文件中使用 class 值键获取 jobExecutionContext['key']

How to get jobExecutionContext['key'] with class value key in xml file in spring batch

我可以将 lastJobExecutionId 设置为 jobExecutionContext['_lastJobExecutionId']。但问题是 _lastJobExecutionId 是另一个 class 中定义的值。我不想在 xml 文件中使用字符串 '_lastJobExecutionId' 并将其更改为它的引用(如 x.y.z.CustomTasklet.KEY_LAST_JOB_EXECUTION_ID)。

我该如何解决?

ASIS

    <bean id="reader" class="x.y.z.CustomReader" scope="step">
        <property name="sqlSessionTemplate" ref="SqlSessionTemplate"/>
        <property name="queryId" value="mybatis.mapper.x.y.z.selectTarget"/>
        <property name="pageSize" value="1000"/>
        <property name="lastJobExecutionId" value="#{jobExecutionContext['_lastJobExecutionId']}"/>
    </bean>

想要成为...

    <bean id="reader" class="x.y.z.CustomReader" scope="step">
        <property name="sqlSessionTemplate" ref="SqlSessionTemplate"/>
        <property name="queryId" value="mybatis.mapper.x.y.z.selectTarget"/>
        <property name="pageSize" value="1000"/>
        <property name="lastJobExecutionId" value="#{jobExecutionContext['x.y.z.CustomTasklet.KEY_LAST_JOB_EXECUTION_ID']}"/>
    </bean>

这是关于 SpEL 语法的更多内容,您可以使用以下符号来引用类型:

<property name="lastJobExecutionId" value="#{jobExecutionContext[T(x.y.z.CustomTasklet).KEY_LAST_JOB_EXECUTION_ID]}"/>

请检查 reference documentation 以获取有关语法的更多详细信息。