Class AbstractJobRepositoryFactoryBean
java.lang.Object
org.springframework.batch.core.repository.support.AbstractJobRepositoryFactoryBean
- All Implemented Interfaces:
org.springframework.beans.factory.FactoryBean<JobRepository>
,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
JobRepositoryFactoryBean
public abstract class AbstractJobRepositoryFactoryBean
extends Object
implements org.springframework.beans.factory.FactoryBean<JobRepository>, org.springframework.beans.factory.InitializingBean
A
FactoryBean
that automates the creation of a
SimpleJobRepository
. Declares abstract methods for providing DAO
object implementations.- Author:
- Ben Hale, Lucas Ward, Robert Kasanicky, Mahmoud Ben Hassine
- See Also:
-
Field Summary
Fields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
protected abstract ExecutionContextDao
protected abstract JobExecutionDao
protected abstract JobInstanceDao
protected abstract StepExecutionDao
The type of object to be returned fromgetObject()
.org.springframework.transaction.PlatformTransactionManager
The transaction manager used in this factory.boolean
void
setIsolationLevelForCreate
(String isolationLevelForCreate) public setter for the isolation level to be used for the transaction when job execution entities are initially created.void
setIsolationLevelForCreate
(org.springframework.transaction.annotation.Isolation isolationLevelForCreate) public setter for the isolation level to be used for the transaction when job execution entities are initially created.void
setTransactionManager
(org.springframework.transaction.PlatformTransactionManager transactionManager) Public setter for thePlatformTransactionManager
.void
setValidateTransactionState
(boolean validateTransactionState) Flag to determine whether to check for an existing transaction when a JobExecution is created.
-
Constructor Details
-
AbstractJobRepositoryFactoryBean
public AbstractJobRepositoryFactoryBean()
-
-
Method Details
-
createJobInstanceDao
- Returns:
- fully configured
JobInstanceDao
implementation. - Throws:
Exception
- thrown if error occurs creating JobInstanceDao.
-
createJobExecutionDao
- Returns:
- fully configured
JobExecutionDao
implementation. - Throws:
Exception
- thrown if error occurs creating JobExecutionDao.
-
createStepExecutionDao
- Returns:
- fully configured
StepExecutionDao
implementation. - Throws:
Exception
- thrown if error occurs creating StepExecutionDao.
-
createExecutionContextDao
- Returns:
- fully configured
ExecutionContextDao
implementation. - Throws:
Exception
- thrown if error occurs creating ExecutionContextDao.
-
getObjectType
The type of object to be returned fromgetObject()
.- Specified by:
getObjectType
in interfaceorg.springframework.beans.factory.FactoryBean<JobRepository>
- Returns:
- JobRepository.class
- See Also:
-
FactoryBean.getObjectType()
-
isSingleton
public boolean isSingleton()- Specified by:
isSingleton
in interfaceorg.springframework.beans.factory.FactoryBean<JobRepository>
-
setValidateTransactionState
public void setValidateTransactionState(boolean validateTransactionState) Flag to determine whether to check for an existing transaction when a JobExecution is created. Defaults to true because it is usually a mistake, and leads to problems with restartability and also to deadlocks in multi-threaded steps.- Parameters:
validateTransactionState
- the flag to set
-
setIsolationLevelForCreate
public setter for the isolation level to be used for the transaction when job execution entities are initially created. The default is ISOLATION_SERIALIZABLE, which prevents accidental concurrent execution of the same job (ISOLATION_REPEATABLE_READ would work as well).- Parameters:
isolationLevelForCreate
- the isolation level name to set- See Also:
-
setIsolationLevelForCreate
public void setIsolationLevelForCreate(org.springframework.transaction.annotation.Isolation isolationLevelForCreate) public setter for the isolation level to be used for the transaction when job execution entities are initially created. The default is ISOLATION_SERIALIZABLE, which prevents accidental concurrent execution of the same job (ISOLATION_REPEATABLE_READ would work as well).- Parameters:
isolationLevelForCreate
- the isolation level to set- See Also:
-
setTransactionManager
public void setTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager) Public setter for thePlatformTransactionManager
.- Parameters:
transactionManager
- the transactionManager to set
-
getTransactionManager
public org.springframework.transaction.PlatformTransactionManager getTransactionManager()The transaction manager used in this factory. Useful to inject into steps and jobs, to ensure that they are using the same instance.- Returns:
- the transactionManager
-
afterPropertiesSet
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-
getObject
- Specified by:
getObject
in interfaceorg.springframework.beans.factory.FactoryBean<JobRepository>
- Throws:
Exception
-