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