使用依赖注入解决循环依赖时如何解决 maven 问题?



我在两个不同的项目中有两个类,如下所示:

项目:projectA
有一个类:ProjectAClass
pom.xml这个项目有一个依赖项:

<dependency>
<groupId>org.projectA</groupId>
<artifactId>projectB</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

项目:projectB
有一个类:ProjectBClass

现在我想使用类中存在的函数ProjectAClass但由于我无法在projectB的pom中添加projectA项目的依赖项.xml(因为它会导致循环依赖(,我尝试通过以下方式使用依赖项注入:

我创建了一个这样的界面(在projectA项目中(:

public interface ProjectAClassInterface {
String funcToUse() throws Exception;
}

使ProjectAClass类实现接口:

public class ProjectAClass implements ProjectAClassInterface{
public String funcToUse() throws Exception {
...
}
}

最后尝试在ProjectBClass中使用此接口:

public class ProjectBClass {
private ProjectAClassInterface projectAClassInterface;
public ProjectAClassInterface getProjectAClassInterface() {
return projectAClassInterface;
}
public void setProjectAClassInterface(ProjectAClassInterface projectAClassInterface) {
this.projectAClassInterface = projectAClassInterface;
}
}

ProjectAClassInterface在 IntelliJ 中以红色显示,当我单击 Alt+Enter 并选择选项"添加对模块'projectC'的依赖"时,我收到以下消息:Adding dependency on module 'projectC' will introduce circular dependency between modules 'projectA' and 'projectB'. Add dependency anyway?

尽管遵循接口方法,但我仍然无法消除循环依赖。我哪里出错了?

你需要创建第三个maven模块并将接口移动到它。然后,让您的模块项目 A 和项目 B 依赖于新创建的模块。这将避免循环依赖。

相关内容

  • 没有找到相关文章

最新更新