Class JobScope

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

    public class JobScope
    extends BatchScopeSupport
    Scope for job 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 job. 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 JobContext using #{..} placeholders. Using this feature, bean properties can be pulled from the job or job execution context and the job parameters. E.g.
     <bean id="..." class="..." scope="job">
            <property name="name" value="#{jobParameters[input]}" />
     </bean>
    
     <bean id="..." class="..." scope="job">
            <property name="name" value="#{jobExecutionContext['input.stem']}.txt" />
     </bean>
     
    The JobContext 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 job attributes.
    Since:
    3.0
    Author:
    Dave Syer, Jimmy Praet (create JobScope based on StepScope), Michael Minella
    • Field Detail

      • ID_KEY

        public static final java.lang.String ID_KEY
        Context key for clients to use for conversation identifier.
        See Also:
        Constant Field Values
    • Constructor Detail

      • JobScope

        public JobScope()
    • Method Detail

      • resolveContextualObject

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

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

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

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

        public java.lang.Object remove​(java.lang.String name)
        See Also:
        Scope.remove(String)