【问题标题】:PAX-CDI: how to get reference to BeanManager in bundle without using CDIPAX-CDI:如何在不使用 CDI 的情况下获取对 BeanManager 的引用
【发布时间】:2016-08-10 10:56:57
【问题描述】:

有一个bundle A,并且在bundle A中有一个类MyClass。我们假设pax-cdi+weld是开启的。

我能否在不使用 @Inject 和其他 CDI 注释的情况下获得对 MyClass 中包 A 的 BeanManager 的引用?通过osgi服务?或者怎么做?

【问题讨论】:

    标签: java osgi cdi weld


    【解决方案1】:

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

    使用最新版本的 Pax CDI CDI.current().getBeanManager() 应该也能正常工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-30
      • 1970-01-01
      • 2021-11-19
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      相关资源
      最近更新 更多