我正在阅读有关使用 Java 进行 Web 开发的良好实践的主题,发现从 Servlet 调用 DAO 是一个不好的实践。该主题本身没有解释为什么这是一个不好的实践,尽管它清楚地解释了,遵循最佳实践,我们需要一个中间类(例如:服务类)来调用 DAO。
为什么这是一个不好的做法?对此有任何理论和/或技术解释吗?
最佳答案
答案是为了可用性。
- DAO 解析对数据库对象的访问。
- Servlet 必须仅用作处理远程请求和响应(通常是 HTTP)的外观。
Servlet 的目的是对参数进行解析/格式化;但他们一定对业务逻辑一无所知。
因此,Servlet 和 DAO 之间需要一个中间级别的业务逻辑类。此级别的类必须了解业务规则、数据库模式以及如何使用它们。该业务逻辑不得耦合到任何部署模式,因此可以从多个外观中使用(和重用):
- servlet/jsps,
- Swing 图形用户界面,
- Spring Controller ,
- Ant 任务,
- 等等
关于java - 为什么直接从 Servlet 访问 DAO 是一种不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48051469/