org.springframework.batch.core.scope
Class StepScope
java.lang.Object
org.springframework.batch.core.scope.StepScope
- All Implemented Interfaces:
- org.springframework.beans.factory.config.BeanFactoryPostProcessor, org.springframework.beans.factory.config.Scope, org.springframework.core.Ordered
public class StepScope
- extends java.lang.Object
- implements org.springframework.beans.factory.config.Scope, org.springframework.beans.factory.config.BeanFactoryPostProcessor, org.springframework.core.Ordered
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>
<bean id="..." class="..." scope="step">
<property name="name" value="#{stepExecutionContext['input.name']}" />
</bean>
<bean id="..." class="..." scope="step">
<property name="name" value="#{jobParameters[input]}" />
</bean>
<bean id="..." class="..." scope="step">
<property name="name" value="#{jobExecutionContext['input.stem']}.txt" />
</bean>
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.
- Since:
- 2.0
- Author:
- Dave Syer
|
Field Summary |
static java.lang.String |
ID_KEY
Context key for clients to use for conversation identifier. |
| Fields inherited from interface org.springframework.core.Ordered |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
|
Method Summary |
java.lang.Object |
get(java.lang.String name,
org.springframework.beans.factory.ObjectFactory objectFactory)
|
java.lang.String |
getConversationId()
|
int |
getOrder()
|
void |
postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
Register this scope with the enclosing BeanFactory. |
void |
registerDestructionCallback(java.lang.String name,
java.lang.Runnable callback)
|
java.lang.Object |
remove(java.lang.String name)
|
java.lang.Object |
resolveContextualObject(java.lang.String key)
|
void |
setName(java.lang.String name)
Public setter for the name property. |
void |
setOrder(int order)
|
void |
setProxyTargetClass(boolean proxyTargetClass)
Flag to indicate that proxies should use dynamic subclassing. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ID_KEY
public static final java.lang.String ID_KEY
- Context key for clients to use for conversation identifier.
- See Also:
- Constant Field Values
StepScope
public StepScope()
setOrder
public void setOrder(int order)
- Parameters:
order - the order value to set priority of callback execution for
the BeanFactoryPostProcessor part of this scope bean.
getOrder
public int getOrder()
- Specified by:
getOrder in interface org.springframework.core.Ordered
setProxyTargetClass
public void setProxyTargetClass(boolean proxyTargetClass)
- Flag to indicate that proxies should use dynamic subclassing. This allows
classes with no interface to be proxied. Defaults to false.
- Parameters:
proxyTargetClass - set to true to have proxies created using dynamic
subclasses
resolveContextualObject
public java.lang.Object resolveContextualObject(java.lang.String key)
get
public java.lang.Object get(java.lang.String name,
org.springframework.beans.factory.ObjectFactory objectFactory)
- Specified by:
get in interface org.springframework.beans.factory.config.Scope
- See Also:
Scope.get(String, ObjectFactory)
getConversationId
public java.lang.String getConversationId()
- Specified by:
getConversationId in interface org.springframework.beans.factory.config.Scope
- See Also:
Scope.getConversationId()
registerDestructionCallback
public void registerDestructionCallback(java.lang.String name,
java.lang.Runnable callback)
- Specified by:
registerDestructionCallback in interface org.springframework.beans.factory.config.Scope
- See Also:
Scope.registerDestructionCallback(String, Runnable)
remove
public java.lang.Object remove(java.lang.String name)
- Specified by:
remove in interface org.springframework.beans.factory.config.Scope
- See Also:
Scope.remove(String)
postProcessBeanFactory
public void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
throws org.springframework.beans.BeansException
- Register this scope with the enclosing BeanFactory.
- Specified by:
postProcessBeanFactory in interface org.springframework.beans.factory.config.BeanFactoryPostProcessor
- Parameters:
beanFactory - the BeanFactory to register with
- Throws:
org.springframework.beans.BeansException - if there is a problem.- See Also:
BeanFactoryPostProcessor.postProcessBeanFactory(ConfigurableListableBeanFactory)
setName
public void setName(java.lang.String name)
- Public setter for the name property. This can then be used as a bean
definition attribute, e.g. scope="step". Defaults to "step".
- Parameters:
name - the name to set for this scope.
Copyright © 2009. All Rights Reserved.