Class JobRegistryBeanPostProcessor
- java.lang.Object
- org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.config.BeanPostProcessor
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.InitializingBean
public class JobRegistryBeanPostProcessor extends java.lang.Object implements org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean
ABeanPostProcessor
that registersJob
beans with aJobRegistry
. Include a bean of this type along with your job configuration, and use the sameJobRegistry
as aJobLocator
when you need to locate aJob
to launch.- Author:
- Dave Syer
Constructor Summary
Constructors Constructor Description JobRegistryBeanPostProcessor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterPropertiesSet()
Make sure the registry is set before use.void
destroy()
Unregister all theJob
instances that were registered by this post processor.protected java.lang.String
getGroupName(org.springframework.beans.factory.config.BeanDefinition beanDefinition, Job job)
Determine a group name for the job to be registered.java.lang.Object
postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName)
If the bean is an instance ofJob
then register it.java.lang.Object
postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName)
Do nothing.void
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
void
setGroupName(java.lang.String groupName)
The group name for jobs registered by this component.void
setJobRegistry(JobRegistry jobRegistry)
Injection setter forJobRegistry
.
Method Detail
setGroupName
public void setGroupName(java.lang.String groupName)
The group name for jobs registered by this component. Optional (defaults to null, which means that jobs are registered with their bean names). Useful where there is a hierarchy of application contexts all contributing to the sameJobRegistry
: child contexts can then define an instance with a unique group name to avoid clashes between job names.- Parameters:
groupName
- the groupName to set
setJobRegistry
public void setJobRegistry(JobRegistry jobRegistry)
Injection setter forJobRegistry
.- Parameters:
jobRegistry
- the jobConfigurationRegistry to set
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
- Specified by:
setBeanFactory
in interfaceorg.springframework.beans.factory.BeanFactoryAware
- Throws:
org.springframework.beans.BeansException
afterPropertiesSet
public void afterPropertiesSet() throws java.lang.Exception
Make sure the registry is set before use.- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
java.lang.Exception
- See Also:
InitializingBean.afterPropertiesSet()
destroy
public void destroy() throws java.lang.Exception
Unregister all theJob
instances that were registered by this post processor.- Specified by:
destroy
in interfaceorg.springframework.beans.factory.DisposableBean
- Throws:
java.lang.Exception
- See Also:
DisposableBean.destroy()
postProcessAfterInitialization
public java.lang.Object postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName) throws org.springframework.beans.BeansException
If the bean is an instance ofJob
then register it.- Specified by:
postProcessAfterInitialization
in interfaceorg.springframework.beans.factory.config.BeanPostProcessor
- Throws:
org.springframework.beans.FatalBeanException
- if there is aDuplicateJobException
.org.springframework.beans.BeansException
- See Also:
BeanPostProcessor.postProcessAfterInitialization(java.lang.Object, java.lang.String)
getGroupName
protected java.lang.String getGroupName(org.springframework.beans.factory.config.BeanDefinition beanDefinition, Job job)
Determine a group name for the job to be registered. Default implementation just returns thegroupName
configured. Provides an extension point for specialised subclasses.- Parameters:
beanDefinition
- the bean definition for the jobjob
- the job- Returns:
- a group name for the job (or null if not needed)
postProcessBeforeInitialization
public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName) throws org.springframework.beans.BeansException
Do nothing.- Specified by:
postProcessBeforeInitialization
in interfaceorg.springframework.beans.factory.config.BeanPostProcessor
- Throws:
org.springframework.beans.BeansException
- See Also:
BeanPostProcessor.postProcessBeforeInitialization(java.lang.Object, java.lang.String)