CDI:通过静态方法

时间:2015-05-29 05:43:57

标签: java cdi jboss-weld pax

我在java se上使用weld + paxcdi。我可以使用

获取beanManager的引用
@Inject
BeanManager beanManager;

但是,很明显我只能在CDI容器管理的对象中使用这种方式。如何在new?

创建的对象中引用beanmanager

1 个答案:

答案 0 :(得分:1)

我认为问题涉及OSGi,否则使用Pax CDI是没有意义的。

Pax CDI创建一个单独的CDI容器,因此每个bean包都有一个单独的bean管理器。出于这个原因,当前的 bean管理器应该是什么并不是很明显。

从Pax CDI 1.0.0.RC1开始,如果方法目标是调用类中的注入点,则CDI.current()在从OsgiServiceProvider方法调用时返回有意义的值。 CDI.current()未定义。

Pax CDI 0.x基于CDI 1.0,因此不支持CDI.current()