phk*_*hkr 3 spring transactions transactionmanager spring-batch spring-transactions
是有什么区别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>
Run Code Online (Sandbox Code Playgroud)
在上面的代码中使用resourcelesstransactionmanager是否正确?或者我应该使用 datasourcetransactionmanager 吗?有什么区别以及何时使用它们?
Spring Batch 需要PlatformTransactionManager在驱动作业和与作业存储库交互时应用其事务语义。
ResourcelessTransactionManager是一个 No-Op 实现,PlatformTransactionManager这意味着不会有针对事务资源的实际事务正在进行(因此术语Resourceless)。当您并不真正需要(或关心)事务行为时,您可以使用它,例如在测试/原型中或使用非事务性作业存储库时。该类由 Spring Batch 提供,不建议用于生产。
DataSourceTransactionManager另一方面来自 Spring Framework,用于驱动针对 JDBC 数据源(可以是真实数据库或内存中的数据库)的事务。这个事务管理器通常在 Spring Batch 中用于将批处理元数据存储在关系数据库中作为作业存储库。
| 归档时间: |
|
| 查看次数: |
2764 次 |
| 最近记录: |