【发布时间】:2015-07-06 00:44:08
【问题描述】:
我有这样的情况。我看不到任何错误,但我没有得到我的结果。
@ApplicationScoped
public class A {
private B b;
@Inject
public A(B b) {
this.b = b;
}
}
@Singleton
public class B {
private A a;
@Inject
public B(A a) {
this.a = a;
}
}
这种依赖注入有错吗?
谁能帮帮我。
【问题讨论】:
-
你需要重构,把依赖的代码从这些A类和B类中移开,并创建一个C类。
-
@André。谢谢回复。你能说出这个 A 和 B 是如何从 C 调用的吗
-
CDI 不能处理循环依赖,EJB 可以
-
@maress,是的,它可以,但我认为这是一种代码味道,具有循环依赖。他要么重构,要么开始使用 EJB。
-
你没有提到你的环境。 Weld 2.2.11.Final 给了我一个非常明确的错误信息:
WELD-001410: The injection point [BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject public demo.B(A) has non-proxyable dependencies
标签: java dependency-injection cdi