【问题标题】:Why is a bad practice to access DAO directly from a Servlet?为什么直接从 Servlet 访问 DAO 是一种不好的做法?
【发布时间】:2018-06-11 14:21:40
【问题描述】:

我正在阅读有关使用 Java 进行 Web 开发的良好做法的主题,发现从 Servlet 调用 DAO 是一种不好的做法。该主题本身并没有解释为什么这是一个不好的做法,尽管它清楚地解释了,按照最佳做法,我们需要一个中间类(例如:一个服务类)来调用 DAO。

为什么这是一种不好的做法?对此有任何理论和/或技术解释吗?

【问题讨论】:

  • 为什么要有一个 DAO 类?为什么不将查询直接放入 Servlet 中?
  • @BoristheSpider 为什么要有 Servlet?为什么不实现自定义 Web 服务器? ;)
  • @ElliottFrisch pah 自定义 Web 服务器 - 为什么不使用 butterflies
  • @BoristheSpider Of course!

标签: java servlets dao


【解决方案1】:

答案是为了可用性

  • DAO 解析对数据库对象的访问。
  • Servlet 只能用作处理远程请求和响应(通常是 HTTP)的外观。

Servlet 旨在对参数进行解析/格式化;但他们一定对业务逻辑一无所知。

因此,在 servlet 和 DAO 之间需要一个中间级别的业务逻辑类。这个级别的类必须知道业务规则、数据库模式以及如何使用它。此业务逻辑不得与任何部署模式耦合,因此可以从多个外观中使用(和重用):

  • servlets/jsps,
  • swing gui,
  • 弹簧控制器,
  • Ant 任务,

【讨论】:

  • @BoristheSpider 已更正。谢谢。
  • Here 是一个 stackexchange 线程,可能有助于解释。
  • 很好的解释,很有道理。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 2010-12-22
  • 2011-05-14
  • 1970-01-01
  • 2013-09-13
相关资源
最近更新 更多