这是一个很好的Spring Architecture(包括测试)

时间:2017-08-25 08:11:12

标签: java spring spring-mvc architecture inversion-of-control

我目前正在开发一个Spring项目。我做了一个图来说明我在说什么。下面的图表UML是否代表了Spring的正确/良好架构?

为了解释,RestController重定向请求。该控制器具有注入真实类的接口依赖性(这里是一个处理文件存储的类)。

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

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

图表:

diagram

2 个答案:

答案 0 :(得分:3)

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

业务逻辑必须保持服务层,不在DAO 。 DAO不应该对您的业务逻辑有任何了解。它只响应与数据库的通信。 enter image description here

答案 1 :(得分:0)

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