Java 包结构中的模块与层

2024-04-10

我曾经把所有东西都放在这样的包中:

com.company.app.module1
com.company.app.module2

但它使得基于包的 AOP 切入点变得困难,并导致需要 IDE 才能理解的巨大包。

所以现在我意识到我需要一个更深层次的包结构,但我不断地被撕裂。给模块偏好,像这样?

com.company.app.module1.domain
com.company.app.module1.logic
com.company.app.module1.persistence
com.company.app.module2.domain
com.company.app.module2.logic
com.company.app.module2.persistence

或者给予图层偏好,像这样?

com.company.app.domain.module1
com.company.app.domain.module2
com.company.app.logic.module1
com.company.app.logic.module2
com.company.app.persistence.module1
com.company.app.persistence.module2

各自的优点和缺点?


模块优先。

我有一个最初是层优先的项目,但它变得太大而无法阅读和维护,因此我们对其进行了重构。它也使用了 AOP——没有任何问题。我们刚刚用过..在包定义的中间(我们使用带有aspectj语法的spring aop)。它看起来是这样的:

execution(* com.foo.app.modules..service..*.*(..))

这两个都匹配modules.module1.service and modules.module2.service

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 包结构中的模块与层 的相关文章

随机推荐