java - CDI 注入(inject)来自注入(inject)点所有者的依赖项

标签 java cdi

我有一个名为 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/

相关文章:

java - JSF中模型和 Controller 的区别

jakarta-ee - Java EE 6 CDI 实现之间的差异

Java-Enums-如何使用默认值创建并访问它们

Java 更改工作线程数量

servlets - 将无状态 EJB 注入(inject) Servlet

java - CDI 和 EJB 与 glassfish 3.1 混合

java - 从注入(inject)的实例 CDI 获取准确的对象

Java 8 Update 91 Web Start应用程序具有较长的启动延迟

java - 我对基本 Java 小程序的第一次尝试失败了。我不明白为什么矩形不动

java - 在java中取消引用for循环的整数值