0

我正在尝试为我遇到这个有用的博客的 Spring 引导项目设置 DAO 层 。

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

“所有 DAO 类必须通过实例化注入其依赖项,而不是稍后在运行时注入,并且依赖项不能是实现类。DAO 层必须确保 DAO 类需要的最小依赖项不超过其域,即所有依赖项都应该是接口仅与持久层或其他 DAO 接口有关。”

请通过提供一些指示来帮助/添加/纠正我的理解。我的理解是

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

4

1 回答 1

0

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

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

于 2021-06-10T08:28:19.887 回答