第一次接觸OSGi,看的第一篇資料是BlueDavy的<OSGi實戰>.并實踐了其中的案例.
還沒有看完,暫時才看到把UserValidator接口和其不同的三種實現---FileConfigValidator, LDAPValidator, DBValidator做成bundle.
bundle的開發和普通的java工程開發唯一的區別就是借助bundle的元數據MANIFEST.MF來實現工程之間package的共享.
除了bundle之外,OSGi還有一個很重要的概念,就是service.這里的service和普通的web開發中的service不同:在OSGi框架中,service是很實在的東西,只有通過BundleContext注冊成Service才能使POJO作為Service在OSGi框架中被其他POJO使用,也只有通過BundleContext來獲取發布到框架中的Service,通過Service的方式來實現bundle之間的實例級依賴.如此說來,service的粒度比package,bundle都要細.
暫時對OSGi了解的不是很多,還在繼續學習中.等把<OSGi實戰>看完,BlueDavy還整了<OSGi進階>,可以看一看.感謝BlueDavy!
其實現在最想了解的,還是基于Spring的OSGi:前者有強大的低依賴性編程模型和概念,后者具有動態性和模塊性.兩者的結合,我相信必然是更為強大的工具.