设计数据访问对象 (DAO) 层所需的说明 - Spring Boot

问题描述

我正在尝试为 Spring boot 项目设置一个 DAO 层,为此 我遇到了这个helpful blog

我需要对下面的文本进行一些澄清,尤其是它说依赖项不能是实现类并且它们不需要超出其域的部分。

"所有 DAO 类都必须通过注入它们的依赖项 实例化,不晚于运行时,和依赖项不能 实现类。 DAO 层必须确保最少的 依赖 DAO 类需要不超过其域,即所有 依赖应该是与持久层相关的接口或 仅限其他 DAO 接口。”

请提供一些提示,帮助/添加/纠正我的理解。我的理解是

我们应该注入接口作为 服务类中的依赖项而不是自动连接具体 持久层实现类。

解决方法

你不注入接口,你的服务类依赖于 DAO 接口(但没有看到实现)。您在运行时注入 dao 接口的实现。因此,实现也将依赖于 dao 接口。

这个想法是(理论上)您可以更换您的底层实现 - 从文件系统迁移到关系数据库,再到文档数据库,您的服务不会受到影响。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...