gpt4 book ai didi

java - 使用依赖注入(inject)解决循环依赖时如何解决maven问题?

转载 作者:行者123 更新时间:2023-11-30 05:30:03 26 4
gpt4 key购买 nike

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

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

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

项目:projectB
有一个类:ProjectBClass

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

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

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

使 ProjectAClass 类实现该接口(interface):

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

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

public class ProjectBClass {
private ProjectAClassInterface projectAClassInterface;

public ProjectAClassInterface getProjectAClassInterface() {
return projectAClassInterface;
}

public void setProjectAClassInterface(ProjectAClassInterface projectAClassInterface) {
this.projectAClassInterface = projectAClassInterface;
}
}

ProjectAClassInterface 在 IntelliJ 中以红色显示,当我单击 Alt+Enter 并选择选项“添加对模块“projectC”的依赖项时,我收到以下消息:添加对模块“projectC”的依赖将在模块“projectA”和“projectB”之间引入循环依赖。还是要添加依赖项吗?

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

最佳答案

您需要创建第三个 Maven 模块并将接口(interface)移至其中。然后让你的模块projectA和projectB依赖于新创建的模块。这将避免循环依赖。

关于java - 使用依赖注入(inject)解决循环依赖时如何解决maven问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57755906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com