当前位置: 首页 > 知识库问答 >
问题:

启用CDI注入到由生产者方法创建的bean中

范高刚
2023-03-14

生产者方法对于以编程方式创建实例并在上下文中发布它们非常有用。问题是由new创建并由生产者方法返回的实例的所有属性都不是由CDI注入的。在焊接留档中,我读到这是一种有意的行为,但在许多情况下,注入这些豆子会非常有用。

是否有一个变通方法来允许注入到这样的bean中?

共有1个答案

谯皓君
2023-03-14

首先,我必须问一下,为什么要使用生产者来生产需要注射的大豆。

除此之外,您需要从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方法中,并执行相同的代码)。

 类似资料:
  • 本文解释了可以将RequestScoped Bean注入ApplicationScoped Bean中,并且客户机代理将在请求期间指向正确的实例:在CDI中,较短范围的Bean实例注入较大范围的Bean实例中-它是如何工作的? 当使用一个单独的生产者类进行额外处理并生成RequestScoped bean时,这是如何工作的?在部署到应用服务器时,由于不明确的依赖关系,我得到一个Deployment

  • 使用野蝇8.2.0。最后,我相信使用焊接2.2,我已经在Maven多模块项目中用2个简单的类重现了这个问题。一个产生一个,另一个产生一个注入点。Arquillian部署失败与:不满足的依赖关系。生产者位于包含在消费者的WEB-INF/lib中的库jar中。生产者在META-INF中有一个,其中,消费者在WEB-INF中有一个。 复制步骤:下载此项目并从根目录运行。 这是一个关键错误。还有一些关于W

  • 我在这里的部分问题是使用正确的词汇,所以我提前为可能是一个简单的术语问题道歉。 假设我有一个接口和一个实现该接口的类。 进一步假设我在某个地方有一个生产者方法(注释为),它返回一个。在内部,它返回一个新的,但这既不是这里也不是那里。 最后,假设我有另一个CDIBean,其注入点定义如下: 假设我有所有的文件就位等,并具有自举焊接或其他符合CDI-1.0的环境,因此我将得到一个不明确的定义错误。这很

  • 也许只是对CDI 1.0规范进行了太多的梳理,但是我找不到对需要META-INF/beans.xml的确切描述。 关于bean发现的部分做了一些诱人的陈述,暗示了某些事情,但我不确定它是否是规定性的。) 我知道粗略地说,任何bean档案都需要一个。 但是在兼容的CDI 1环境中考虑以下情况: 仅包含接口的接口jar 一个包含CDIBean的实现jar,该CDIBean实现了这些接口,并具有注入点,

  • 我有一个JAR文件,其中包含一个请求范围Bean。(一个注释为的类)。 我有另一个Web服务项目(作为WAR文件构建)。上述JAR文件位于WAR文件的文件夹中。 我试图的类到Web服务项目中的一个类中。 我正在得到一个 这两个项目都有JAR文件,WAR文件包含一个空的。我已经研究这个问题好几天了。请帮忙。 谢谢

  • 我有一个JSF的问题,CDI项目。我做了大量研究,发现在CDI中没有注释。我用对话框解决基于ajax的页面的问题。我想将变量从DataTable传递到dialog。为此,我不能使用bean,因为在请求结束后会丢弃值。有人能帮我解决吗?我不能使用,但这是一个糟糕的做法。或者只保存这一个变量到会话谁知道。你们能给我一些提示如何优雅地解决这个问题吗? 以下是错误消息: