0

Apache Felix 的 SCR 允许声明(通过注释或 XML)组件,然后将其实例化、连接到它们的依赖项并注册为 OSGi 服务。

也可以跳过服务注册部分,只让 SCR 创建组件(通过指定@scr.component,但省略@scr.service)。我在想这可能仅对依赖注入(在包中)有用,但是如何使用组件?可以使用scr.reference注入服务,但这不适用于非服务(或者是否)?

直接访问 SCR API 是可行的,但直接与容器服务对话有点违背 DI 的目的。

4

1 回答 1

2

我认为您只能注入 OSGI 服务。如果你想使用依赖注入,也许你应该检查 google Guice。不幸的是,我不知道它是否可以在 OSGI 容器中开箱即用。

关于 SCR 组件,如果一个组件提供了您想在另一个组件中使用的功能,我认为它应该使用服务公开。

于 2009-01-19T14:24:50.420 回答