java - Spring Java Maven项目+模块设计

标签 java spring maven

我正在尝试将现有的java项目转换为maven项目。我想到了以下方法,但我不确定我是否朝着正确的方向前进。

第一种方法是将所有实体、存储库、服务、常量、实现类分组到 1 个单独的 Maven 模块/项目中。

第二种方法是将所有服务类放在各自的 Maven 模块/项目中,并将其余实体、存储库类放入基本模块中。

我应该采用哪种方法?

方法1

finance-module
 - com.example.finance.entities 
 - com.example.finance.repository
 - com.example.finance.service

order-module
 - com.example.order.entities
 - com.example.order.repository
 - com.example.order.service

code-module
 - com.example.code.entities
 - com.example.code.repository
 - com.example.code.service

方法2

finance-module
 - com.example.finance.service

order-module
 - com.example.order.service

code-module
 - com.example.code.service

base-module
 - com.example.finance.entities  
 - com.example.finance.repository
 - com.example.order.entities
 - com.example.order.repository
 - com.example.code.entities
 - com.example.code.repository

最佳答案

您拥有的第一种方法是按功能拥有文件夹的经典案例,而第二种方法是按类型拥有一种文件夹(我应该这样调用它)。尽管两种方法各有利弊,但个人选择是按功能组织模块(方法 1)。

这是我的 2 美分原因:

a) 随着应用程序大小的增长,当有很多包时,转到特定文件是一个问题。简而言之,是导航问题。

b) 您可以让多个团队独立处理这些不同的模块,并设计一个父 pom 来为发布构建子 pom/模块,同时仍保持代码分离

c) 模块变得松散耦合和封装,由于 A-> B 类、B->A 类问题,一个模块中的更改很可能不会破坏其他构建

关于java - Spring Java Maven项目+模块设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39802612/

相关文章:

java - jain sip processResponse() 没有被调用

java - 在独立 MockMvc 中测试 @Validated RestController 不起作用

spring - 新项目应该使用 Spring DM 2.0.0.M1 还是 Gemni Blueprint 1.0.0.M1?

java - 多个动态 HTTP 端点

java - 如何使用@Suite注释运行JUnit5套件

Android - 使用 Android Studio 和 Gradle 的 httpcore 和 httpmime Proguard

Java 正则表达式匹配开始/结束标记导致堆栈溢出

java - 如何声明不同类型的HashMap?

java - HttpServletRequest.getRemoteUser() 与 HttpServletRequest.getUserPrincipal().getName()

maven - 为 Gephi 运行 Maven