我正在使用Spring进行一个项目。在这个项目中,我使用Spring批处理后期绑定,在这个绑定中,我使用JobParameters.注入了一个参数(一个字符串将用作SQL查询的条件)目前,我正在使用@StepScope进行后期绑定,而且一切都很好。
这里我要问的是什么时候使用@StepScope,什么时候使用@JobScope。我已经阅读了Spring批处理引用,并搜索了有关StepScope和JobScope的内容。我所得到的就是:
StepScope : Spring将使用spring容器为每个步骤的执行实例化该组件的新实例。
b. JobScope :每个执行作业只有一个实例。
我只是无法确定何时使用StepScope或JobScope。有人能解释得更深一点吗?
发布于 2018-07-27 02:46:56
每个作业由三个步骤组成,即读取步骤、过程步骤和写入步骤。如果您创建了一个具有步骤作用域的bean,那么您可以从这三个步骤中的每一个步骤引用它--但是在每个步骤中都会得到该bean的不同实例。我创建了一个带有作业范围的bean,然后您可以从这三个步骤中的每一个引用它--在这三个上下文中它都是相同的实例。
因此,如果需要在bean中存储一个步骤,而同一作业中的后续步骤将访问它,则希望该bean位于作业范围内。如果希望保证任何步骤在bean中存储和操作的数据都是该步骤的本地数据(对其他步骤隐藏),则希望该bean处于逐步范围内。
https://stackoverflow.com/questions/51549891
复制相似问题