java - PAX-CDI : how to get reference to BeanManager in bundle without using CDI

标签 java osgi cdi weld

有一个包 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/

相关文章:

java - 如何获取OSGI主题的消费者数量?

java - 在 Eclipse RCP 应用程序中动态加载 Web 服务包

java - CDI 1.1 : Is @Observes @Initialized(TransactionScoped. 类)应该可以工作吗?

java - 在不同系统的 Android Studio 上构建失败

java - Snap SPARQL API 是否存在?

java - 扩展包在 OSGi 框架中的含义

tomcat - CDI 注入(inject) Servlet 3.0 容器中的外部过滤器和 Servlet

java - EJB 拦截器与 CDI 拦截器

java - 一个webapp如何转发到另一个webapp?

java - libGDX html :draftCompileGwt Compilation Error