我使用glassfish 4 OSGi控制台来管理软件包。因此,如果要从另一个捆绑包中获取一个捆绑包,请使用@Inject和@OSGIService批注。
当我在上下文中注册服务时,将属性放在其中:

context.registerService(
        ServiceClass.class.getName(), new ServiceClass(), props);


注入时可以通过捆绑方式获得这些属性吗?

我可以使用CDI获得包上下文吗?

而且,如果捆绑包中某些接口有不同的实现方式,而我想通过代码中的属性来获取它们,该如何实现呢?

最佳答案

尝试@Inject BundleContext上下文;注入BundleContext。
做@Inject @OSGIService @Filter(“ myprop = a”)MyService服务;注入具有某些属性的服务。

这是来自焊接文档,但大多数情况下,它也适用于玻璃鱼。

请参阅此以获取更多详细信息:

http://de.slideshare.net/TrevorReznik/weldosgi-injecting-easiness-in-osgi

10-07 19:21
查看更多