首页 > 解决方案 > Spring Boot RESTful——三层架构

问题描述

我是一名 dotnet 开发人员,但现在我将致力于 Spring Boot 应用程序。让我困惑的一件事是我们如何分离 API 层、服务层和存储库层。在 dotnet 项目中,我们为服务层和存储库层创建类项目,并为 API 或表示层创建 Web 项目。但是在基于 maven 的 spring boot 中似乎对这种方法并不熟悉。虽然我在 Maven 中发现您可以创建单独的模块,但不确定这是正确的方法。无论哪种方式正确,请分享一些示例实现。有什么好的开源项目可供我遵循并做出决定吗?

标签: javaspringspring-bootmaven

解决方案


根据项目的规模和定义模块边界的方式,有多种组织代码的方法。

例如,在我的公司,我们按业务领域将代码分成模块。我们有名为securityschedulemessaging等的项目。每个项目都有自己的一组@Controller(即 API 端点)@Service@Repository. 像这样的东西。

项目结构

configuration@Configuration上课的。controller@Controller上课的。db.domain@Entity上课的。db.repo用于@Repository接口。service@Service上课的。dto用于将数据从@Entity类转换为 API 端点的某种自定义格式的自定义类。

在您的情况下,如果您想为 和 拥有单独的项目,@Controller您只需要使用 Maven 来声明您的项目之间的依赖关系。例如,项目应该将项目作为依赖项之一。@Service@Repository@Service@Repository

在这种情况下,最好设置一个多模块 Maven 项目。随后,您可以非常轻松地声明任何项目之间的依赖关系。


推荐阅读