PAX-CDI:如何在不使用 CDI 的情况下获取对 BeanManager 的引用
PAX-CDI: how to get reference to BeanManager in bundle without using CDI
有一个 bundle A 并且 bundle A 中有一个 class MyClass。我们假设 pax-cdi+weld 开启。
我可以在不使用@Inject 和其他CDI 注释的情况下获取对MyClass 中bundle A 的BeanManager 的引用吗?通过 osgi 服务?或者如何?
您可以查找 CdiContainer
OSGi 服务并调用 getBeanManager()
。
使用最新版本的 Pax CDI CDI.current().getBeanManager()
应该也能正常工作。
话虽如此,Pax CDI 的整个想法是让 CDI 在 OSGi 中工作,就像在 Java EE 中一样。访问 BeanManager
有点设计味道,除非您正在开发 CDI 扩展。
有一个 bundle A 并且 bundle A 中有一个 class MyClass。我们假设 pax-cdi+weld 开启。
我可以在不使用@Inject 和其他CDI 注释的情况下获取对MyClass 中bundle A 的BeanManager 的引用吗?通过 osgi 服务?或者如何?
您可以查找 CdiContainer
OSGi 服务并调用 getBeanManager()
。
使用最新版本的 Pax CDI CDI.current().getBeanManager()
应该也能正常工作。
话虽如此,Pax CDI 的整个想法是让 CDI 在 OSGi 中工作,就像在 Java EE 中一样。访问 BeanManager
有点设计味道,除非您正在开发 CDI 扩展。