Maven - 接口

时间:2017-06-23 10:50:31

标签: java spring maven-3

我有以下方案,需要有关如何处理的建议。

我的项目是带弹簧的Maven模块。

我有以下模块。

1.模块A - WAR

2.模块B - WAR

3.module C - JAR

模块依赖关系如下。

模块A和B将模块C作为依赖关系。

我有一个与模块A相关的服务。实现在模块A中完成。这个服务需要由模块B访问。现在我做的是引入一个接口到模块C(jar)来访问这个服务。实现留在模块A(该服务真正属于)。模块B通过接口和项目编译访问此服务。但问题是spring无法在模块B中为此服务创建bean。这是可以理解的,因为bean(实现)从未出现在模块B的依赖列表中。我该如何解决这个问题?我不想将整个服务转移到模块B,因为这将是巨大的代码重复。

2 个答案:

答案 0 :(得分:2)

  

"实现留在模块A(真正的服务   所属)"

它不应该是模块A和模块B是两个不同的WAR,它们实际上没有关系 如果您希望每个WAR在运行时保存实现,则应在每个WAR中包含组件实现。

实施应该在一个普通的jar中:模块C或另一个。

现在,如果您希望此实现提供的服务仅在模块A中。模块A构建的WAR应该公开服务(例如REST)以允许模块B调用它。
但我不确定你是否愿意这样做。

答案 1 :(得分:1)

  

这实际上是共享服务,但这是最重要的责任   属于模块A.移动此模块C意味着添加不必要的   对模块C的责任

也许您可以在模块C中实现共享功能,并将额外职责扩展到模块A