【发布时间】:2013-01-07 06:47:59
【问题描述】:
生产者方法对于以编程方式创建实例并在上下文中发布它们非常有用。问题是由new 创建并由生产者方法返回的实例的所有属性都不是由CDI 注入的。在 Weld 文档中,我读到这是一种有意的行为,但在许多情况下,注入这些 bean 会非常有用。
是否有解决方法可以注入此类 bean?
【问题讨论】:
标签: methods cdi code-injection producer weld
生产者方法对于以编程方式创建实例并在上下文中发布它们非常有用。问题是由new 创建并由生产者方法返回的实例的所有属性都不是由CDI 注入的。在 Weld 文档中,我读到这是一种有意的行为,但在许多情况下,注入这些 bean 会非常有用。
是否有解决方法可以注入此类 bean?
【问题讨论】:
标签: methods cdi code-injection producer weld
首先,我要问你为什么要为需要注入的 bean 使用生产者。
除此之外,您需要从 BeanManager 创建一个新实例。查看https://github.com/apache/incubator-deltaspike/blob/master/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanProvider.java#L115 的一些想法(您可以简单地将 BeanManager 作为参数注入 Producer 方法并执行相同的代码)。
【讨论】: