在现有的类中实现Spring Transaction Handling

时间:2014-02-04 08:56:47

标签: java spring spring-mvc transactions

我在本地HSQLDB上遇到了一些错误,认为我需要一个事务处理系统。

Spring Framework似乎是最常见的选择,但我在线阅读的所有教程都实现了DAOPatterns,DAO等。

是否可以在我已经实现的类之上设置事务处理组件?

我无法重写整个应用程序,基本上已经完成了所有工作...

最好的问候 daZza

1 个答案:

答案 0 :(得分:2)

您可以“处理”每个级别的交易,但不建议这样做。

Daos通常用于处理数据库的操作,但通常不是应该在服务级别上的事务。

为什么呢? Well Dao方法应该做一些简单的事情,比如更新条目或找到条目。

要记住关于交易的重要事项是它们应该是ACID

然后处理事务,如果发生回滚,则应确保数据库处于正确状态。 想象一下,您正在进行以下操作(教科书):从一个帐户中取钱并将其放入另一个帐户中。如果它在两个交易中,那么你可以从一个交易中拿钱,并尝试将其放入另一个交易中。但如果那个回滚会怎么样呢?然后你从一个帐户拿走了钱,它已经消失了。

这就是为什么你需要担心自己的交易。

顺便说一句,Spring提供了事务支持,但这不是它的主要目的。也就是说,你会发现很多选择弹簧的支持。

为了最终回答你的问题,我认为你应该尝试解决方案,但看看它是否符合ACID标准。如果没有,您应该尝试添加dao图层,因为它通常不会太痛苦,并在您的服务图层上添加交易。