有一个包 A,并且包 A 中有一个类 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 扩展。
关于java - PAX-CDI : how to get reference to BeanManager in bundle without using CDI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38871453/