java - 在已有的类中实现 Spring 事务处理

标签 java spring spring-mvc transactions

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

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

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

我无法重写我的整个应用程序,并且基本上已经让一切正常工作了......

最诚挚的问候 达扎

最佳答案

您“可以”处理各个级别的事务,但不建议这样做。

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

为什么?那么 Dao 方法应该做一些简单的事情,例如更新条目或查找条目。

关于交易要记住的重要一点是它们应该是 ACID .

处理事务时,您应该确保您的数据库在发生回滚时处于正确的状态。 想象一下,您正在执行以下操作(教科书):从一个帐户取出资金并将其存入另一个帐户。如果是两笔交易,那么您可能会从一笔交易中取出钱,然后尝试将其放入另一笔交易中。但万一出现回滚怎么办?然后您从一个帐户中取出了钱,然后它就消失了。

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

顺便说一句,Spring提供了事务支持,但这不是它的主要目的。也就是说,选择 Spring 确实会得到很多支持。

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

关于java - 在已有的类中实现 Spring 事务处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21547835/

相关文章:

java - Redis中的notify-keyspace-events是什么

java - Spring自定义请求上下文

java - Spring Task Scheduler 与 Java 的 ScheduledExecutorService

java - 注册观察者与设置处理程序

java - 如何修复 PdfArray 无法转换为 PRStream

java - Eureka 的 Springboot 错误,浏览器显示 xml 而不是 json

java - 从属性文件初始化变量 Spring 4.0

java - 我可以在没有 Message Broker 的情况下使用 Spring Integration

java - 如何使用 redis 使用 spring-security-oauth2 持久化 token

java - 单击可扩展 ListView 中的子项时如何在另一个 Activity 中打开 ListView