【问题标题】:is @Transactional not sufficient for transaction management@Transactional 是否不足以进行事务管理
【发布时间】:2018-09-15 18:48:24
【问题描述】:

我一直在我的 Spring Boot 应用程序上使用 @Transactional 进行事务管理。但是今天有人告诉我使用narayana进行事务管理。

如果 spring 本身可以为我做事务管理,为什么我必须使用 narayana。

【问题讨论】:

标签: java spring-mvc spring-boot spring-transactions


【解决方案1】:

基本上有两种交易。 Local transactions 特定于单个事务资源,例如 JDBC 连接,而 global transactions 可以跨越多个事务资源,例如分布式系统中的事务。

如果你需要分布式系统的事务管理,spring 事务管理是不够的,narayana 会派上用场。

来自 Spring Boot 文档:

Spring Boot 支持跨多个 XA 的分布式 JTA 事务 使用 Atomikos 或 Bitronix 嵌入式事务处理资源 经理。部署到 合适的 Java EE 应用服务器。

当检测到 JTA 环境时,Spring 的 JtaTransactionManager 是 用于管理事务。自动配置的 JMS、DataSource 和 JPA 升级 bean 以支持 XA 事务。您可以使用标准 Spring 成语,如@Transactional,参与分布式 交易。如果您在 JTA 环境中并且仍想使用 本地事务,您可以将 spring.jta.enabled 属性设置为 false 禁用 JTA 自动配置。

【讨论】:

    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    相关资源
    最近更新 更多