我曾经把所有东西都放在这样的包中:
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(使用前将#替换为@)