gpt4 book ai didi

spring - DataSourceTransactionManager 和 ResourcelessTransactionManager 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 16:02:01 28 4
gpt4 key购买 nike

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>

在上面的代码中使用resourcelesstransactionmanager是否正确?还是我应该使用数据源事务管理器?有什么区别以及何时使用它们?

最佳答案

Spring Batch 需要 PlatformTransactionManager 在驱 Action 业并与作业存储库交互时应用其事务语义。

ResourcelessTransactionManagerPlatformTransactionManager 的 No-Op 实现,这意味着不会有针对事务性资源的真正事务(因此称为 Resourceless)。您可以在您并不真正需要(或关心)事务行为时使用它,例如在测试/原型(prototype)中或在使用非事务性作业存储库时。该类由 Spring Batch 提供,不建议用于生产。

另一方面,

DataSourceTransactionManager 来自 Spring Framework,用于驱动针对 JDBC DataSource(可能是真实数据库或内存中的数据库)的事务。此事务管理器通常在 Spring Batch 中用于将批处理元数据存储在关系数据库中作为作业存储库。

关于spring - DataSourceTransactionManager 和 ResourcelessTransactionManager 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56287143/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com