我有一个基于 Spring Batch 的 Spring 应用程序。默认情况下,Spring Batch 为其步骤(即读取器、写入器和处理器)引入事务。在某些阶段我并不真正需要启用事务。由于这些方法不必要启用事务,因此当我在一种方法中调用两个不同的数据库时,它会给我一些运行时错误。
spring 是否提供任何注释来为一组特定的方法禁用事务?
或者 Spring Batch 中有什么可用的东西可以让我完全或声明性地摆脱事务
我什至愿意接受可以全局禁用事务的解决方案。 任何链接、论文将不胜感激。 提前致谢 萨米尔
最佳答案
Spring Batch 本质上是事务性的。即使您的数据源不是事务性的,JobRepository 的语义也需要它。使用 Spring Batch 可以得到的最接近且非事务性的方法是使用 ResourcelessTransactionManager。该事务管理器本质上是一个无操作事务管理器,它只跟踪操作是否在事务范围内。
关于spring - 在 Spring 中使特定方法成为非事务性的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153444/