【问题标题】:Design pattern involving interaction between multiple datasources涉及多个数据源之间交互的设计模式
【发布时间】:2012-07-06 03:56:10
【问题描述】:

我一直使用 DAO 模式进行 CRUD 操作,每个 DAO 负责一次访问唯一的数据源,并使用泛型来支持多个实体。

现在我需要相同的更改

1.- 数据源将在运行时动态添加/删除

2.- 一个工作单元涉及例如:从数据源 A 读取,在 B 上写入,如果 B 成功,则从 A 中删除。 A 和 B 可以互换,这让我想到了某种起源/目的地机制。

3.- 仅对 1 个数据源进行读取

所有数据源中的实体都是相同的,为此我可以添加一个工厂,每当添加数据源时创建一个新的 DAO,回答第一个问题。但我不确定如何解决其余的问题。

DAO 模式仍然适用吗?如果是,需要添加什么?或者整体上是否有不同的方法?

【问题讨论】:

    标签: java design-patterns jakarta-ee dao


    【解决方案1】:

    如果Spring 是您的应用程序堆栈的一部分,您可以使用AbstractRoutingDataSource,它可以灵活地添加动态datasource 映射。如果不通过它的源代码,您可以构建自己的逻辑类似于此。

    在快速谷歌上,我遇到了这个http://blog.springsource.org/2007/01/23/dynamic-datasource-routing/。 它正在解释这种动态路由。

    【讨论】:

      【解决方案2】:

      这听起来像是一项商业交易。您需要一个涵盖事务的业务组件,它涉及多个 DAO。

      【讨论】:

      • 我明白,但是数据源的数量是可变的,也许是定义源/目标操作的一种方式?
      • 我相信,您已经有了如何使用 DAO Factory 解决您的第一个问题的想法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多