在春季批处理分区中分配变量stepScope?

时间:2019-07-31 11:57:00

标签: spring kotlin scope spring-batch

我在批处理分区程序中划分了步骤,但是在单个处理器中访问BatchParameters。

问题是我在处理器中有一个变量,因此,如果我分别检索每个步骤的参数,它将被每个步骤覆盖。

是否可以对租户变量进行逐步检查?我知道您可以@StepScope注释Bean,但是还可以将变量“本地化”吗?

lateinit var tenant: Tenant

@BeforeStep
fun beforeStep(stepExecution: StepExecution) {
    tenant = stepExecution.executionContext.getString(BatchParameters.TENANT)
            .let { Tenant.parse(it) }
}

每个步骤的承租人都应该不同,但是现在,首先执行两个@BeforeStep,然后执行第二个步骤(使用承租人)时,将覆盖公共变量。

0 个答案:

没有答案