我一直在使用Spring的@Transactional
注释,它为管理事务提供了很多便利。但是,在我们的代码中使用此注释现在使我们依赖于Spring。我知道有JPA类型的东西,有一个javax persistence包,我们可以用JPA注释标记各种类型的代码,但由于它们都来自javax.persistence
,我们的代码不依赖于任何特定的实施或ORM。
我想我的问题是,是否有任何类似的交易内容注释。我发现了一个javax jta包,但我不确定Spring是否可以实现任何通用注释。基本上我只是想知道是否存在任何类似通用javax的注释,我们可以将这些注释用于管理事务功能的方法,以便我们不依赖于Spring。
答案 0 :(得分:11)
我认为JavaEE 6不像Spring那样提供事务划分注释。我认为,最接近的模拟是EJB无状态会话bean的使用,这些会话bean本质上是事务性的,但没有明确区分(如果我错了,请有人纠正我)。
您可以选择将您的代码耦合到哪个API。使用Spring @Transactional
的优点是,您独立于所使用的特定事务API(@Transactional
可以使用JTA,JPA,Hibernate或原始JDBC事务,而无需更改代码)。但是,当然,你与春天有关。
如果注释样式是你想要的,那么除了你想完全拥抱JavaEE并使用EJB 3.x风格的注释之外,我看不到Spring的替代方案。