【问题标题】:Understanding DAOs place in an MVC Java Web App了解 DAO 在 MVC Java Web 应用程序中的位置
【发布时间】:2010-10-12 22:58:11
【问题描述】:

我使用下面的(有点过时的)链接作为学习和理解在我的网络应用程序中正确使用 DAO 的指南。

http://balusc.blogspot.com/2008/07/dao-tutorial-data-layer.html

http://balusc.blogspot.com/2008/07/dao-tutorial-use-in-jspservlet.html

一般来说,在 Servlet 的 INIT() 方法中初始化一个 DAO,然后将该 DAO 传递给模型是否正确?还是应该将 DAO 更紧密地集成在模型中,或者可能是模型的一部分?也就是说……有没有更好的方法让模型获得量身定制的 DAO?

诚然,我在这里扩展了我对该主题的了解,所以如果我措辞不佳,我深表歉意。启蒙总是受欢迎的。

【问题讨论】:

  • 我想我真正要问的是“这是正确的做法吗”?假设我本来可以这样说开始......

标签: java model-view-controller dao


【解决方案1】:

我不是来自 Java 世界,所以我的意见可能不是你想要的。但我很确定理想的方法是让你的 DAO 松散耦合到你的模型的其余部分(你可能在谈论 DAO X 业务类 - 对我来说 DAO 和业务对象属于“The Model”,但您的里程可能会有所不同)。

这样可以轻松替换所有 DAO 层。我创建了一个具有 2 个不同且完整的 DAO 实现的应用程序:一个使用 Oracle DMBS,另一个使用 MySQL。也许这就是您正在寻找的 - 使用抽象工厂模式很容易。

当然,Java 程序员可以为此使用 Spring IoC 容器,我想 :)

【讨论】:

  • 谢谢大家,我会看看这个。
【解决方案2】:

Spring 实现了所谓的工厂模式。这让 spring 处理创建应用程序中使用的 DAO 对象。当您这样做时,实现与调用它们的代码非常松散耦合。

使用 Spring(或类似工具)比在调用它们的类中创建 DAO 实例要好得多。

这是一个关于使用 Spring 和 DAO 的教程:

http://www.ibm.com/developerworks/java/tutorials/j-spring2/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-07
    • 2011-09-14
    • 2016-01-29
    • 1970-01-01
    • 2013-05-12
    • 2019-04-21
    • 2021-04-05
    • 2011-08-08
    相关资源
    最近更新 更多