ctripcorp / dal

Ctrip Database Access Layer
Apache License 2.0
1.24k stars 448 forks source link

Java客户端 事务处理问题 #4

Closed zhangyq1011 closed 8 years ago

zhangyq1011 commented 8 years ago

为何事务在DAO层处理呢?我们现在的SSI框架都是使用spring提供的声明式事务管理。DAL如何结合spring框架进行事务管理呢?好的框架和系统开源一般会拥抱类似spring等框架。在应该用系统开发中如何使用dal与其他系统结合?看demo都是直接使用dalclient进行调用的。谢谢,期待你的回复!

hejiehui commented 8 years ago

我们设计DAL的初衷是设计一个独立运行的组件,不假定自己依赖特定的第三方DI框架。因此DAL自己实现了事务。我不认为spring的事务声明的做法是唯一好的做法。我认为事务最好做成一个明确的闭包,而不是公开到配置级别,由开发人员任意配置。事务是重量级的数据库使用方式,不应该从设计上鼓励容易使用。 demo用的是我的单元测试代码,只是为了验证功能,你在里面可以任意调用生成的dao,完全不用用到DalClient接口。你可以实现DalCommand,然后把实现注册为bean。

zhangyq1011 commented 8 years ago

感谢你的热心回复。如果我们使用DAL应该如何做呢?完全抛弃Spring现在估计不太可能。把DAL做为独立的组件如何配合使用呢?有没有好的建议配合DI框架(Spring)的、再次感谢你。

hejiehui commented 8 years ago

使用DAL的transaction并不是要你抛弃spring。你可以继续使用spring。但就数据库事务这块,你可以不用spring的事务管理。 具体使用事务的方法我上面已经解释了。我不太理解你现在碰到什么问题。你可以加入qq群307228594,我们具体看看你的需求

zhangyq1011 commented 8 years ago

好的。非常感谢!!!