浏览 3061 次
锁定老帖子 主题:采用ext模式开始OSGi
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-21
如何简化呢?看看OSGi的类型加载机制你会发现这样一个参数org.osgi.framework.bootdelegation,org.osgi.framework.bootdelegation主要是定义是否采用父类加载器加载里面配置的类,bootdelegation可是支持通配符的哦,这样有了一个想法,对于spring框架和common包我们不需要引入bunlde了,直接让父类加载器去完成只需要配置org.apache.*,org.springframework.*即可,当加载的时候遇到apache和springframework的时候都是让父类加载器去加载即可。 父类加载器在OSGI里面可以采用osgi.parentClassloader去控制,默认是boot,不建议使用基本只能加载jre下面的几个jar,功能不够强大,可以采用ext或者app,我建议使用ext,自己定义java.ext.dirs的目录,这样只要jar包在此目录下即可以加载,至于app只要在你的classpath里面也行,但是不如ext那么方便。 经过试验通过OSGi+springDM+tomcat启动最少只需5个bundle(2个eclipse的,1个tomcat启动bundle,2个spring的extender) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-04-21
zhu_chen001 写道 当你基于springDM开发bundle的时候,你会发现你需要引入的太多,加上commom包,估计一个简单的bundle也要引入10多个包或者bundle
我们是编写LIBD文件,然后用STS工具在MANIFEST.MF文件里import-library这种形式引入第三方类库。 如果自己编写的bundle有依赖的时候,采用普通的import-bundle形式。环境是spring-osgi,sprng dm server |
|
返回顶楼 | |
发表时间:2010-04-22
楼上的这样的开发对于开发人员的要求较高,当然你们的和周边的关系也定义的充分。我上面说的方法主要目的是降低开发的难度,把bundle的依赖限制在业务自己开发的bundle里面,这样可以降低开发成本,同时升级基础库也容易些
|
|
返回顶楼 | |