2009-01-18 102 views
0

Apache Felix的SCR允許聲明(通過註釋或XML)組件,這些組件將被實例化,連接到它們的依賴項,並註冊爲OSGi服務。Felix/OSGi:如何使用不是OSGi服務的SCR組件?

還可以跳過所述服務登記部,和只是有SCR創建組件(通過指定@ scr.component,但省略@ scr.service)。我認爲這可能對於依賴注入(在包內)是有用的,但是如何消費這些組件?可以使用scr.reference注入服務,但是這對於非服務(或者是否)不起作用?

直接訪問SCR API工作,但直接與容器服務交談會破壞DI的目的。

回答

2

我認爲你只能注入OSGI服務。如果你想使用依賴注入,也許你應該檢查谷歌Guice。不幸的是,我不知道它是否可以在OSGI容器中使用。

關於SCR組件,如果某個組件提供了要在另一個組件中使用的功能,我認爲它應該使用服務公開。

+0

Peaberry(http://code.google.com/p/peaberry/)是Guice與OSGi合作的改編版本。 – xconspirisist 2011-12-29 16:20:45