spring的事务管理应该针对业务逻辑组件的方法还是DAO的方法?

新人发问, 我看了很多关于配置事务管理的帖子, 大家好像都是针对为DAO的方法配置事务管理, 比如insert啊find啊之类的方法, 可是我觉得应该为业务逻辑组件的方法配置事务才对啊~ 因为无论是从线程安全来考虑, 还是从原子操作来考虑, 都应该把业务逻辑的方法当作一个事务才对啊, 比如我有一个操作叫转帐, 需要从A户口减钱, 然后B户口加钱, 需要调用两次DAO的方法, 如果只配置DAO的方法, 那么如果A减钱之后, B加钱的过程中操作失败, 那就回滚不到原来状态了啊, A的钱白减了啊...求解...

4个回答

是啊事务边界当然是service层啊,这样service的每个方法都是一个事务了。
因为与客户交互的一般都是从服务层里面调用的方法来响应事件的,这样更体现了事务的优点。
当人也有人在Dao的实现层配置事务管理,但我建议不要使用这种方法。

事务边界当然在 service 层了.

@Service
@Transactional
public class MyXXService {

}

这样service的每个方法都是一个事务了

确实如上所述

么有争议的问题,纯蹭分

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!