我是一名 dotnet 开发人员,但现在我将开发 Spring Boot 应用程序。让我困惑的一件事是我们如何分离 API 层、服务层和存储库层。在 dotnet 项目中,我们为服务和存储层创建类项目,并为 API 或表示层创建 Web 项目。但在基于maven的spring boot中似乎不熟悉这种方法。虽然我发现在 Maven 中你可以创建单独的模块,但不确定这是正确的方法。无论哪种方式正确,请分享一些示例实现。有什么好的开源项目可供我跟踪并做出决定吗?
最佳答案
根据项目的规模以及定义模块边界的方式,可以采用多种方法来组织代码。
例如,在我的公司,我们按照业务领域将代码分成模块。我们有一些名为security
、schedule
、messaging
等的项目。每个项目都有自己的一组@Controller
(这是 API 端点)、@Service
和 @Repository
。像这样的东西。
configuration
用于@Configuration
类。 controller
用于@Controller
类。 db.domain
用于@Entity
类。 db.repo
用于@Repository
接口(interface)。 service
用于@Service
类。 dto
用于自定义类,它将数据从 @Entity
类转换为 API 端点的某种自定义格式。
就您而言,如果您想为 @Controller
、@Service
和 @Repository
建立单独的项目,您只需使用Maven 来声明项目之间的依赖关系。例如,@Service
项目应将 @Repository
项目作为依赖项之一。
在这种情况下,最好设置 multi-module Maven project 。随后,您可以非常轻松地声明任何项目之间的依赖关系。
关于java - Spring boot RESTful - 三层架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524665/