2013-03-16 72 views
2

我知道这种问题正在回归regurarly,但我不知道是否有一种方法来手动实例化bean(使用新的Xxxx())并完成注入。 也许使用BeanManager,但我不知道如何。手动实例化bean时的CDI注入

如果这是不可能的,我想知道为什么没有这样做。从概念上讲,我没有找到使这不可能的好理由。

感谢您的解释。

P.S:我正在使用JBoss 7.1.1和Weld CDI容器。

JM。

回答

3

由于CDI背后的基本概念是范围及其相关上下文的概念。这是上下文和依赖注入中的上下文。基本上,一个具有范围的bean有一个定义良好的生命周期,但是当你自己实例化一个bean时,不再告诉它的生命周期是什么。阅读CDI规范的2.4 Scopes

给你稍微更多的见解--CDI不仅仅是@Inject你的依赖关系,还要管理他们的生命周期。它不仅仅是简单的实例化和依赖注入,而且还包括终止(调用@PreDestroy),不仅仅是为了bean实例本身,还包括所有的依赖实例。当你自己创建一个bean的时候,不知道何时做最后一部分。 OK。

+0

OK。很清楚。感谢您的解释。 – jmcollin92 2013-03-18 13:34:20