第一次接触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:前者有强大的低依赖性编程模型和概念,后者具有动态性和模块性.两者的结合,我相信必然是更为强大的工具.