我有一个使用激活器方法声明服务“旧方式”的系统。
现在我正在使用声明式服务编写一个新包。是否可以在我的新捆绑包中引用未使用声明式服务技术发布的服务?
我有一个使用激活器方法声明服务“旧方式”的系统。
现在我正在使用声明式服务编写一个新包。是否可以在我的新捆绑包中引用未使用声明式服务技术发布的服务?
Yes, it is possible. When you reference a service from a DS component, you don't need to worry about that service's internal implementation.
The other service may be another DS component, or it may be a Spring-DM component, or it may be published with explicit calls to the OSGi APIs. You don't care. It's just a service.
没有将服务发布到 OSGi 服务注册表的“旧方法”。BundleContext.registerService() 只有一种方法。您可以从您的激活器手动完成,或者声明式服务/蓝图引擎可以为您完成。
在您的 DS 描述符中,您只需定义对 Service Registry 中可用服务的引用。