gpt4 book ai didi

java - 使用 @Produces 注释时出现不明确的依赖关系

转载 作者:行者123 更新时间:2023-12-01 11:58:20 25 4
gpt4 key购买 nike

我一直在研究CDI依赖注入(inject)的@Produces注解 here 。我刚刚创建了自己的相同示例。然而,我面临着模糊的依赖。

public interface Bank {

public void withdrawal();
public void deposit();
}

public class BankOfAmerica implements Bank {

@Override
public void withdrawal() {
System.out.println("Withdrawal from Bank of America");
}

@Override
public void deposit() {
System.out.println("Deposit to Bank of America");
}
}

public class BankFactory {

@Produces
public Bank createBank() {
return new BankOfAmerica();
}
}

这是注入(inject) bean 的类。

public class ProducesExample {

@Inject
private Bank bankOfAmerica;

public void callBanksWithdrawal() {
bankOfAmerica.withdrawal();
}
}

感谢您的帮助。

编辑:我知道这是此 question 的重复项。然而,在我分享的教程中,它说它应该可以工作。此外,只有一种类型的 bean,因此不需要使用 @Default 或 @Alternatives,但仍然对它不起作用的原因感到困惑。

最佳答案

本教程对于每个步骤中应同时部署哪些类有点含糊(双关语),因此我不会太担心。

您链接的其他问题的答案确实符合您的情况。 BankOfAmerica 是一个 Bank 类型的 bean(在 CDI 1.0 或具有显式 bean 的 CDI 1.1+ 中),并且您的生产者方法是相同类型的另一个 bean,因此不明确分辨率。

关于java - 使用 @Produces 注释时出现不明确的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28186130/

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