CDI:通过静态方法获取对 beanManager 的引用

CDI: get reference to beanManager via static method

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

获取对 beanManager 的引用
@Inject
BeanManager beanManager;

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

我假设这个问题是指 OSGi,否则使用 Pax CDI 是没有意义的。

Pax CDI 创建一个单独的 CDI 容器,因此为每个 bean 包创建一个单独的 bean 管理器。因此,current bean 管理器应该是什么并不是很明显。

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

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