利用 OSGi 宣告式服務來撰寫進階特性
您可以利用軟體組啟動器類別及 ManagedService 和 ServiceTracker 之類介面的直接實作來控制簡式特性。 由於軟體組之間的關係會越來越複雜,最好是利用「OSGi 宣告式服務 (DS)」之類的機能,將特性拆解成個別服務。 DS(有時也稱為「服務元件執行時期」或 SCR)提供對於 OSGi 服務生命週期和注入項目的管理。
關於這項作業
將特性邏輯組織成一組宣告式服務的好處如下:
- 服務的啟動(包括載入提供服務的 Java™ 類別)可以延遲到使用服務之時;這可以加快伺服器的啟動速度,並儘可能減少耗用資源。
- 服務參照會放在服務登錄中,即使服務尚未啟動也是如此,以便解析服務的相依關係。
- 對其他服務的相依關係可以在執行時期注入,各服務會依照這些相依關係來循序啟動。
- 必要的話,在服務內容變更之時,可以將服務關閉,再重新啟動。
許多線上資源都提供了「OSGi 宣告式服務」用法的詳細資訊,其中包括 OSGi 社群 Wiki。
這個作業提供如何向 DS 宣告服務、如何取得對其他服務的參照,以及如何管理各服務之配置內容的簡單說明。