java - spring 框架中 Service 和 DAO 接口(interface)的主要目的是什么?

标签 java spring oop interface

我是 spring 框架的新手。我在谷歌上搜索了很多 spring mvc 网站,我注意到为每个服务和 dao 创建了接口(interface),但我有一些疑问如下:

1) 为每个服务和 dao 创建接口(interface)的主要目的是什么?

2) spring mvc 的项目结构应该如何?

最佳答案

  1. 界面的用途是什么

简答:依赖注入(inject)

长答案:你看,我们不希望在我们的应用程序中有具体的实现和强耦合。接口(interface)服务于这个目的,有或没有 Spring。 Spring 是一个在很大程度上利用了这一点的框架。使用接口(interface),您可以通过定义描述参数和返回类型的契约(接口(interface)方法)来编写单个逻辑的多个实现,但您没有指定它是如何完成的。这为您编写执行此操作的不同 Spring bean(Impl 类)提供了很大的灵 active 。 List 在 Java 中是一个接口(interface),然后你有像 LinkedListArrayList

这样的实现
  1. Spring MVC 项目应该如何构建

简答:随心所欲

长答案:您是使用 Spring MVC 作为 API 服务器还是提供像 JSP/Thymeleaf 这样的 View ?如果我正在编写一个 API,我将拥有 Controllers(入口点和 spring 特定功能)、Facades(没有框架类的纯 Java 业务逻辑)和 DAO/Services(取决于数据是来自数据库还是来自第三方 API,可能两者都有) 最低限度。对于 MVC,我会有几乎相似的设置,但根据您与 API 提供商的协议(protocol),我可能会放弃服务层并更多地关注 Javascript 方面。在这个时代,我建议不要使用 JSP/Freemarker。与使用任何语言的 React + API 服务器相比,它们的开发速度要慢得多。

关于java - spring 框架中 Service 和 DAO 接口(interface)的主要目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52669760/

相关文章:

oop - 如果正则表达式是方法,它们对应于哪个类?

java - 在 java 中动态创建和执行 bash 命令的最佳方法?

spring - 测试 Maven 模块中的 FileNotFoundException

java - 发送列表到jsp标签

java - 强制 Spring Boot 不使用 EmbeddedWebApplicationContext?

android - 面向对象的 Android 程序的正确方法是什么?

scala - 在Coalgebras上使用Tagless Final(对象代数)可以吗?

java - Android - 多次调用 DownloadManager/BroadcastReceiver

java - Eclipse tycho 将版本更新为 svn 修订版

java - Spring MVC 无法将字符串转换为日期