OSGi服务没有实现接口

时间:2017-07-05 07:41:40

标签: java osgi

我正在开发一个使用OSGi的项目,该项目具有以下代码

@Component(policy = ConfigurationPolicy.OPTIONAL, ds = true, immediate = true, metatype = false)
@Service(TestInterface.class)
public class TestInterface{

这里的代码没有实现服务将要公开的接口。此外,我已经验证了在任何地方都没有使用@Reference引用它。 它真的需要将其作为服务而不是仅仅是组件吗?如果我想在另一个组件中使用它,我必须通过实现接口将其作为服务。 OSGI是否真的要求在实现接口时公开服务?

1 个答案:

答案 0 :(得分:1)

OSGi服务可以在任何类型名称下注册,而不仅仅是接口。强烈建议使用接口,因为它们很好地将实现类与服务的使用者分开。