org.springframework.jdbc.datasource.DataSourceTransactionManager
有什么区别和org.springframework.batch.support.transaction.ResourcelessTransactionManager
<bean id="batchTransactionManager" class=
"org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
<bean id="batchJobLauncher"
class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
<property name="jobRepository" ref="batchJobRepository" />
<property name="taskExecutor">
<bean class="org.springframework.core.task.SimpleAsyncTaskExecutor" />
</property>
</bean>
在上面的代码中,使用RousedelessTransactionManager是否正确?还是我应该使用datasourcetransactionmanager?什么是不同的信息以及何时使用它们?
春季批次需要PlatformTransactionManager
在驾驶工作时应用其交易语义并与作业存储库进行交互。
ResourcelessTransactionManager
是PlatformTransactionManager
的NO-OP实现,这意味着与事务资源(因此术语Resourceless
(不会进行实际交易。当您不需要(或关心(事务行为时,您可以使用它,例如在测试/原型中或使用非交易工作库时。此类由Spring Batch提供,不建议用于生产。
DataSourceTransactionManager
来自弹簧框架,用于针对JDBC DataSource驱动事务(这可能是真实的数据库或内存数据库(。该交易管理器通常在Spring Batch中用于将批处理元数据存储在关系数据库中作为作业存储库。