我一直使用DAO模式进行CRUD操作,每个DAO一次负责访问一个唯一的数据源,并使用泛型来支持多个实体。
现在我需要进行以下更改
1.-数据源将在运行时动态添加/删除
2.-工作单元涉及例如:从数据源A读取,在B上写入,如果B成功则从A中删除。 A和B可以互换,这让我想到某种起源/目的地机制。
3.-只对1个数据源进行读取
实体在所有数据源中都是相同的,为此我可以添加一个工厂,只要添加数据源就会创建一个新的DAO,回答第一个问题。但我不知道如何处理剩下的事情。
DAO模式是否仍然合适?如果是,需要添加什么?或者整体上有不同的方法吗?
答案 0 :(得分:1)
如果Spring
是您的应用程序堆栈的一部分,您可以使用AbstractRoutingDataSource
,这样可以灵活地添加动态datasource
映射。如果没有通过它的源代码,你可以构建自己的逻辑类似于此。
在快速谷歌上,我遇到了这个http://blog.springsource.org/2007/01/23/dynamic-datasource-routing/。 它正在解释这种动态路由。
答案 1 :(得分:0)
这听起来像商业交易。您需要一个涵盖事务的业务组件,其中涉及多个DAO。