Class StepScope

All Implemented Interfaces:
org.springframework.beans.factory.config.BeanFactoryPostProcessor, org.springframework.beans.factory.config.Scope, org.springframework.core.Ordered

public class StepScope extends BatchScopeSupport
Scope for step context. Objects in this scope use the Spring container as an object factory, so there is only one instance of such a bean per executing step. All objects in this scope are <aop:scoped-proxy/> (no need to decorate the bean definitions).

In addition, support is provided for late binding of references accessible from the StepContext using #{..} placeholders. Using this feature, bean properties can be pulled from the step or job execution context and the job parameters. E.g.
 <bean id="..." class="..." scope="step">
        <property name="parent" ref="#{stepExecutionContext[helper]}" />

 <bean id="..." class="..." scope="step">
        <property name="name" value="#{stepExecutionContext['']}" />

 <bean id="..." class="..." scope="step">
        <property name="name" value="#{jobParameters[input]}" />

 <bean id="..." class="..." scope="step">
        <property name="name" value="#{jobExecutionContext['input.stem']}.txt" />
The StepContext is referenced using standard bean property paths (as per BeanWrapper). The examples above all show the use of the Map accessors provided as a convenience for step and job attributes.
Dave Syer, Michael Minella, Mahmoud Ben Hassine
  • Field Details

    • ID_KEY

      public static final String ID_KEY
      Context key for clients to use for conversation identifier.
      See Also:
  • Constructor Details

    • StepScope

      public StepScope()
  • Method Details

    • resolveContextualObject

      public Object resolveContextualObject(String key)
      This will be used to resolve expressions in step-scoped beans.
    • get

      public Object get(String name, org.springframework.beans.factory.ObjectFactory<?> objectFactory)
      See Also:
      • Scope.get(String, ObjectFactory)
    • getConversationId

      public String getConversationId()
      See Also:
      • Scope.getConversationId()
    • registerDestructionCallback

      public void registerDestructionCallback(String name, Runnable callback)
      See Also:
      • Scope.registerDestructionCallback(String, Runnable)
    • remove

      public Object remove(String name)
      See Also:
      • Scope.remove(String)
    • getTargetNamePrefix

      public String getTargetNamePrefix()
      Specified by:
      getTargetNamePrefix in class BatchScopeSupport