0
我剛開始玩OSGi服務,有以下情況。我有一個包含2項服務的項目。服務A需要服務B,所以我試圖注入依賴服務使用osgi依賴注入服務
@Inject
private ServiceB svc;
但框架不會注入。如果我設置了以下兩種方法在服務質量上 並設置這些方法爲「綁定/ undbind」在我的OSGi componentA.xml框架調用 這些方法,我可以在服務A.使用服務B
public synchronized void bind(IServiceB service)
{
this.svc = service;
}
public synchronized void unbind(IServiceB service)
{
if (this.svc == service)
{
this.svc = null;
}
}
問題是,爲什麼它不適用於@Inject?對不起,如果這是一個愚蠢的問題,我對整個話題都很陌生。提前謝謝了!
你好Neil,謝謝你的回答。我沒有提到它,但你當然是對的,我正在使用DS。您能否進一步解釋「DS的註釋」的含義?到目前爲止,我所做的是生成一個component.xml並使用eclipse編輯器設置所需信息(就像清單編輯器一樣,只需點擊幾下鼠標即可將服務接口設置爲實現類)。提前謝謝了! – paddy3k
所以再次猜測一下,你建議你使用Eclipse PDE(插件開發環境)?哎喲哎喲。這會給你帶來很多痛苦。在PDE中,你基本上不能生成*任何東西*,並且必須手工完成。看一下bndtools教程(http://bndtools.org/tutorial.html),它應該特別提供關於註釋的概念,並且一般來說一個合適的工具可以讓你的生活變得更容易。 –
我正在使用Eclipse JEE版本。感謝bndtools提示,我會進一步調查!起初我認爲這些註釋是OSGi「開箱即用」的。我認爲這個問題已經足夠清楚了,並且再次感謝你! – paddy3k