有一个捆绑包A和threre是捆绑包A中的一个MyClass类。我们假设pax-cdi + weld已打开。
我可以在不使用@Inject和其他CDI注释的情况下在MyClass中引用bundle A的BeanManager吗?通过osgi服务?或者怎么样?
答案 0 :(得分:1)
您可以查找CdiContainer
OSGi服务并调用getBeanManager()
。
最新版本的Pax CDI CDI.current().getBeanManager()
也可以正常使用。
话虽如此,Pax CDI的整个想法是让CDI在OSGi中工作,就像在Java EE中一样。除非您正在开发CDI扩展,否则访问BeanManager
有一点设计气味。