锁定老帖子 主题:还是Spring的事务
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-12-28
我的一个业务逻辑是包括了多条数据库操作的,我想把这些操作放在同一个事务中 Session sess=getSession(); sess.beginTran(); api1(); api2(); api3(); tran.commit(); sess.close(); 这样的需求用Spring怎么配置呢? Spring中的事务是不是都是对应到一个bean中的一个方法?可以是多个方法共用 同一个事务吗? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-12-30
很简单的一个道理:
Session sess=getSession();; sess.beginTran();; api1();; api2();; api3();; tran.commit();; sess.close();; 是在一个方法中吧,Spring里也是一样啊 public void saveOrUpdate(); { api1();; api2();; api3();; } saveOrUpdate()方法在Spring中通过AOP由事务管理起来,那么这个saveOrUpdate()方法中的api(1),api(2),api(3)也在一个事务中了啊。 |
|
返回顶楼 | |
发表时间:2004-12-30
看来只能这样了
就是再封装一层 |
|
返回顶楼 | |
发表时间:2004-12-30
所以我将事务加到Action层。
|
|
返回顶楼 | |
发表时间:2004-12-30
不是再封装一层这样的意思,而是你的业务层本身就应该提供这种业务方法。你不要从数据库设计往上走,而是先从业务逻辑建模开始往下走,那么你先写出来的是业务Bean,然后在业务Bean里面写调用DAO的代码。
如果你认为有必要在Action里面控制业务逻辑,那么你要考虑你的设计是否有问题。Action不是用来编写业务逻辑的,而是单纯用来控制Web流程的。这是一个很基本的原则! |
|
返回顶楼 | |
发表时间:2004-12-31
像上面的业务方法,还可以理解。但是,要在业务方法中,管理事务,好吗?
如果,把它直接扔到dao接口中的话,那样,肯定会有业务的代码加入,也不好。 看来,加一层service,有用。 对了,难道dao中,只有crud操作吗?如果是那样,完全可以先业务。 我天,再说什么呀,突然感觉,service层有用,在这处理事务,比较合适。那只封装数据库操作的业务好了,呵呵,感觉还是分不开。 |
|
返回顶楼 | |
发表时间:2004-12-31
hongsoft 写道 看来只能这样了
就是再封装一层 封装一层不是很好吗? 保持dao操作的原子性,在sevice中任意组装dao中的方法,加载事务, 岂不是很方便? |
|
返回顶楼 | |
发表时间:2005-01-30
如果我们就是不封装,直接写三个独立的方法的话,应该怎么配置啊
|
|
返回顶楼 | |
发表时间:2005-01-31
其实如果不用aop
那我们的办法就是在dao的每个方法中传入connection 然后在action中自己管理连接和事务 这样的办法很罗羧,我是想请教大家有什么好的办法没有? |
|
返回顶楼 | |
发表时间:2005-01-31
因为本帖的问题是很普遍的,基本上所有的应用系统
都会有这个问题,所以,我的一个想法是: spring的事务管理真的很好吗? 我不知道哪里有个spring的事务管理用于整个子系统的例子?为什么这么多人都对它的事务管理有疑问呢? 我目前就是因为它的事务管理方面的疑问才没有考虑 用spring |
|
返回顶楼 | |