扩展抽象类时的组件实例化和注册

时间:2019-01-11 10:40:01

标签: java osgi declarative-services

据我了解,可以通过SCR实例化扩展抽象类的组件,但不会将其保存到服务注册表中。 仅在实现接口时才保存。

这正确吗?

1 个答案:

答案 0 :(得分:1)

默认是将组件实现类的直接实现的接口用于服务类型。如果组件实现类扩展了一个类,则不将超类实现的接口视为组件实现的默认服务类型的一部分。

查找所有接口的类型层次结构将不会有用,因为默认服务类型中将包含通用接口(如Serializable)。

因此,要么让您的组件实现类重新声明超类的所需接口,要么使用Component批注的service属性来显式声明该组件的服务类型。