【发布时间】:2013-09-19 21:35:21
【问题描述】:
目前我在一家拥有 6-7 个 Java EE 项目的公司工作。它们是多模块 maven 项目,它们都相当大并且服务于不同的目的。因此,它们的模型非常不同,但大部分数据都存储在同一个数据库中。
对我来说,问题在于,由于存在一些重叠区域,它们只是将现有的 DAO 一直注入到依赖链中。所以我有
A-parent
-A-JPA
-A-DAO
B-Parent
-B-JPA
-B-DAO
-A-JPA
-B-DAO
等等等等。他们实际上只使用了 2% 的其他项目模型和各自的 DAO。
我试图通过简单地复制所需的实体(并且只包括真正需要的东西的字段/映射)来尝试解耦这些依赖关系,这样同一个 EJB 就不会部署 7 次(或集群时更多) ,但显然我没有提出令人信服的论点。任何人都可以帮我指出一篇关于这种情况的最佳实践的文章,或者帮助提出要点来向他解释。
TLDR:我希望每个项目都有自己的实体集,即使存在非常小的重叠,以减少项目之间的依赖关系,并使其不会部署相同的 EJB 7 次。我的老板认为这些不必要的耦合并没有错。我是不是无缘无故为此大肆宣扬?谢谢!
【问题讨论】:
-
这有点主观,取决于您的特定域的许多因素。通常,如果我要共享 1 个数据库,我会想要一个带有 dao/jpa 的 maven 项目,并且只要有任何需要数据库访问的东西都包括该依赖项。关注点和所有的分离。但同样,对于不熟悉您的项目的人来说,这并不是为您解答的最佳答案。