JTA和Spring @Transactional注释之间的区别

dnc*_*253 8 annotations transactions jta java-ee spring-transactions

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

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

ska*_*man 11

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

您可以选择将您的代码耦合到哪个API.使用Spring的优点@Transactional是您独立于所使用的特定事务API(@Transactional可以使用JTA,JPA,Hibernate或原始JDBC事务,而无需更改代码).但是,当然,你与春天有关.

如果注释样式是你想要的,那么除了你想完全包含JavaEE并使用EJB 3.x样式的注释之外,我看不到Spring的替代方案.