我在批处理分区程序中划分了步骤,但是在单个处理器中访问BatchParameters。
问题是我在处理器中有一个变量,因此,如果我分别检索每个步骤的参数,它将被每个步骤覆盖。
是否可以对租户变量进行逐步检查?我知道您可以@StepScope注释Bean,但是还可以将变量“本地化”吗?
lateinit var tenant: Tenant
@BeforeStep
fun beforeStep(stepExecution: StepExecution) {
tenant = stepExecution.executionContext.getString(BatchParameters.TENANT)
.let { Tenant.parse(it) }
}
每个步骤的承租人都应该不同,但是现在,首先执行两个@BeforeStep,然后执行第二个步骤(使用承租人)时,将覆盖公共变量。