J W*_*uck 0 osgi blueprint-osgi
似乎有两种方法可以从OSGi服务注册表获取配置管理服务.一个通过实例化BundleContext,然后从中获取ServiceReference,然后从中获取ConfigurationAdmin:
BundleContext bc = FrameworkUtil.getBundle(ManagedService.class).getBundleContext();
ServiceReference ca = bc.getServiceReference(ConfigurationAdmin.class);
ConfigurationAdmin configAdmin = (ConfigurationAdmin) context.getService(ca);
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用Blueprint并简单地创建对ConfigurationAdmin的引用,如下所示,然后在bean中引用它:
<reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" />
Run Code Online (Sandbox Code Playgroud)
这两种方法是否相同?或者前者的方法是否提供后者没有的任何东西?是否有任何Blueprint参考文档描述了它实例化ConfigurationAdmin(似乎找不到任何东西)的作用?
这些不是"实例化"Configuration Admin服务.它们是从OSGi服务注册表获取Configuration Admin服务的服务对象的方法.两种方式都将返回相同的服务对象.第一种方法使用低级OSGi API与OSGi服务注册表进行交互.第二种方式使用蓝图.
关于Blueprint,我建议在OSGi中使用Declarative Services来进行依赖注入.
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |