PAX-CDI:如何在不使用CDI的情况下在bundle中引用BeanManager

时间:2016-08-10 10:56:58

标签: java osgi cdi weld

有一个捆绑包A和threre是捆绑包A中的一个MyClass类。我们假设pax-cdi + weld已打开。

我可以在不使用@Inject和其他CDI注释的情况下在MyClass中引用bundle A的BeanManager吗?通过osgi服务?或者怎么样?

1 个答案:

答案 0 :(得分:1)

您可以查找CdiContainer OSGi服务并调用getBeanManager()

最新版本的Pax CDI CDI.current().getBeanManager()也可以正常使用。

话虽如此,Pax CDI的整个想法是让CDI在OSGi中工作,就像在Java EE中一样。除非您正在开发CDI扩展,否则访问BeanManager有一点设计气味。