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()
。
我在 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()
。