我有一个名为 Container 的类:
public class Container {
@Inject
ServiceA serviceA;
@Inject
ServiceB serviceB;
}
服务B依赖于服务A:
public class ServiceB {
@Inject
ServiceA serviceA;
}
我的应用程序内可以有多个容器。现在,是否有任何技巧可以将 ServiceA 的这个实例注入(inject)到 ServiceB 中,而 ServiceA 已注入(inject)到与 ServiceB 相同的 Container 实例中?
最佳答案
将您的类注释为 @ApplicationScoped
或 @Singleton
,这将确保您的类中只有一个 ServiceA
实例应用。该实例将在第一次注入(inject)该 bean 期间创建。
附注我更喜欢 @ApplicationScoped
正如 Weld docs 中所建议的那样。因为@Singleton没有代理对象,在序列化过程中可能会出现问题。
关于java - CDI 注入(inject)来自注入(inject)点所有者的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20048796/