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

标签 java osgi declarative-services

据我了解,扩展抽象类的组件已由 SCR 正确实例化,但不会保存到服务注册表中。 仅当它实现接口(interface)时才会保存。

这是正确的吗?

最佳答案

服务类型默认使用组件实现类的直接实现的接口(interface)。如果组件实现类扩展了一个类,则父类(super class)实现的接口(interface)不会被视为组件实现的默认服务类型的一部分。

查找所有接口(interface)的类型层次结构是没有用的,因为通用接口(interface)(例如 Serialized)将包含在默认服务类型中。

因此,要么让您的组件实现类重新声明父类(super class)所需的接口(interface),要么使用 Component 注释的 service 属性显式声明组件的服务类型。

关于java - 扩展抽象类时的组件实例化和注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54144834/

相关文章:

java - 使用 gradle 生成 OSGI-INF/serviceComponent.xml

java - 我想在运行时更改 SWT 应用程序的语言。怎么做?

java - JSF 2 - 如何使用 JSF EL 从 web.xml 获取上下文参数值?

java - 与 jitpack 使用的分支相关的 github 版本

java - 在 OSGI 应用程序 Mac OS X - Java 1.7 中引用时 ImageIO 挂起

java - 如何从命令行构建 OSGi(Equinox) 项目

java - 在嵌套 Map 中使用 groupingBy,但收集到不同类型的对象

java - 如何替换 blueprint/context.xml 中加载的 cfg 文件中的文本值

Osgi 声明式服务条件绑定(bind)

configuration - OSGi 声明式服务和配置管理