这是一个好的 Spring 架构吗(包括测试)

Is this a good Spring Architecture (include testing)

我目前正在做一个 Spring 项目。我做了一个图表来说明我在说什么。下图 UML 是否代表 correct/good 架构以遵循 Spring ?

解释一下,RestController 重定向请求。这个控制器有一个接口依赖注入了真正的 class(这里是 class 处理报告和文件的存储)。

class DatabaseFile 实现 DatabaseInterface。一方面,一些内容处理方法(如 getContentFromReport(string) -> 调用 readFile(String) 然后例如仅采用重要行),另一方面是纯文件方法(如 ReadFile 使用 (Reader, FileUtil ...))。

我的问题是文件方法(readFile()、deleteFolder())不包含依赖注入,我无法模拟某些对象。

图表:

您必须遵循标准 MVC 方法(视图将是 JSON/XML 中的响应)。 您必须将所有业务逻辑保留在 DAO 层中,并将 DAO 注入服务层,然后将此服务注入其余控制器。 出于测试目的,您可以模拟 dao 和服务层。

您应该有 ControllerService 层(接口和实现)和 DAO层(存储库接口和实现)。

业务逻辑必须在服务 层中,不在 DAO 中。 DAO 不应该对您的业务逻辑一无所知。它仅用于与数据库通信的响应。