9

我已经开始使用 Spring 的@Transactional注解了,它为管理事务提供了很多便利。然而,在我们的代码中使用这个注解现在使我们依赖于 Spring。我知道对于 JPA 类型的东西,有一个javax 持久性包,如果 JPA 注释,我们可以在其中使用各种标记代码,但由于它们都来自javax.persistence,因此我们的代码不依赖于任何特定的实现或 ORM。

我想我的问题是是否有任何类似的事务性注释。我找到了一个javax jta包,但我不确定 Spring 是否真的可以实现任何通用注释。基本上我只是想知道是否有任何类型的通用 javax 类注释,我们可以将它们放在方法上来管理事务功能,以便我们不依赖于 Spring。

4

1 回答 1

12

我认为 JavaEE 6 不像 Spring 那样提供事务分界注释。我认为最接近的类似物是使用 EJB 无状态会话 bean,它们本质上是事务性的,但没有明确划分(如果我错了,请有人纠正我)。

您可以自行决定选择将代码耦合到哪些 API。使用 Spring 的优点@Transactional是您独立于所使用的特定事务 API(@Transactional可以使用 JTA、JPA、Hibernate 或原始 JDBC 事务,而无需更改代码)。但是,当然,您与 Spring 相关联。

如果注释样式是您想要的,那么我看不出除了 Spring 之外别无选择,除非您想完全接受 JavaEE 并使用 EJB 3.x 样式的注释。

于 2012-05-08T20:48:15.417 回答