什么是osgi

osgi干什么事? modulization模块化。


模块化。。好模糊的东东。。java不能模块化吗?java做的不够好,比如用classpath来load很多class和jar包,不保证得到合适的类只返回找到的第一个类(JAR地狱问题)。还有动态加载,常常改一个class一个jar要重启整个系统这个现在在很多系统是不合适的。我们看到有eclipse plugin及glassfish等东东装个插件不需要重启整个系统。即插即用。

怎么办?当然可以自己用java写,但是osgi提供了这个框架。


模块化还要解决一个问题就是系统间分离与交互。可以用rmi, webservice, corba等等但是cost too high. osgi可以更高效一些。


java7为解决类似问题曾作过努力(JSR277,后放弃)引入module关键字,管理依赖(osgi有部署时依赖,运行时依赖,可选依赖),这让我想起maven。 @ImportModule(name="java.se.core", version="1.7+")


osgi入门:可以从eclipse自带的equinox和felix入手。run-->run configuration-->osgi framework-->new-->deselect all bundle-->select all felix bundle and equinox.console-->run. console里出现提示符,提示framework启动成功。 输入ss,可看到已启动的bundles。

常见的还有spring-DM,apache CXF等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值