spring - 在 Spring 中使特定方法成为非事务性的

标签 spring spring-batch

我有一个基于 Spring Batch 的 Spring 应用程序。默认情况下,Spring Batch 为其步骤(即读取器、写入器和处理器)引入事务。在某些阶段我并不真正需要启用事务。由于这些方法不必要启用事务,因此当我在一种方法中调用两个不同的数据库时,它会给我一些运行时错误。

spring 是否提供任何注释来为一组特定的方法禁用事务?

或者 Spring Batch 中有什么可用的东西可以让我完全或声明性地摆脱事务

我什至愿意接受可以全局禁用事务的解决方案。 任何链接、论文将不胜感激。 提前致谢 萨米尔

最佳答案

Spring Batch 本质上是事务性的。即使您的数据源不是事务性的,JobRepository 的语义也需要它。使用 Spring Batch 可以得到的最接近且非事务性的方法是使用 ResourcelessTransactionManager。该事务管理器本质上是一个无操作事务管理器,它只跟踪操作是否在事务范围内。

关于spring - 在 Spring 中使特定方法成为非事务性的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153444/

相关文章:

spring - 使用 Spring SAML -SP 元数据与 IDP 元数据进行 ADFS 集成?

java - 如何确认 ClassPathXmlApplicationContext 找到文件?

java - Spring Batch 不使用自定义数据源来创建表

java - 在 ApplicationContext 中找到 Bean,但在尝试 Autowiring 时找不到

Java Spring Boot 加上 Spring Batch 创建 Jar 并仅运行特定作业

spring - 在Spring boot应用程序中打印docker容器id

java - 我如何在 Spring MVC 中上传和检索文件(图像、音频和视频)

java - 将自定义元素添加到 Spring WS 中的 SOAP header

java - 在 Hibernate Search 中建立索引时出错(在事务完成之前)

Spring 批 : use before- and after-step methods within a CompositeItemWriter