是@Transactional不足以进行事务管理

时间:2018-04-05 20:25:48

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

我一直在我的Spring启动应用程序中使用@Transactional进行事务管理。但今天有人告诉我使用narayana进行交易管理。

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

1 个答案:

答案 0 :(得分:0)

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

如果您需要分布式系统的事务管理,那么Spring事务管理是不够的,narayana将会发挥作用。

来自Spring boot docs:

  

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

     

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