一、異同 熟悉Spring的應該也都瞭解它的IOC的功能,那麼對於在OSGI開發環境下,在使用IOC功能時有什麼不同呢?最重要的一點就是Spring上下文對象,每個Spring-Powered Bundle都有自身的Spring上下文對象,而傳統的J2EE開發環境只有一個Spring上下文對象,所以 ...
一、異同
熟悉Spring的應該也都瞭解它的IOC的功能,那麼對於在OSGI開發環境下,在使用IOC功能時有什麼不同呢?最重要的一點就是Spring上下文對象,每個Spring-Powered Bundle都有自身的Spring上下文對象,而傳統的J2EE開發環境只有一個Spring上下文對象,所以就導致在跨Bundle間的對象註入需要通過特定命名空間的配置才能實現,而如果在本Bundle間的依賴註入則跟我們所熟悉通過配置文件註入方式一致。
二、配置文件
在OSGI開發環境下,通過引入Spring DM將Spring與OSGI進行無縫地銜接,在META-INF目錄下新建名為spring的文件夾,Spring DM就會自動掃描該文件夾下的配置文件,添加了該配置文件的Bundle在OSGI中稱為pring-Powered Bundle
三、OSGI命名空間下的配置標簽
1、<osgi:service>:該配置標簽的作用是將托管的Spring Bean轉化為OSGI服務,從而簡化了註冊服務的代碼編寫
2、<osgi.reference>:該配置標簽與<osgi:service>對應,它的作用就是將一個OSGI服務轉化為Spring中的Bean,從而簡化從BundleContext中引入服務的代碼編寫
通過引入Spring DM,跟Spring如同一轍的配置,使得開發人員在比較熟悉Spring的情況,能夠很快的實現功能開發,減少學習成本。
下一篇隨筆將對Spring DM提供的對Bundle的監聽服務介面的配置