我使用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