OSGi

OSGi技术作为Java平台上的动态模型系统,提供了标准化的组件化开发方式。它支持模块化的应用程序构建,通过独立的ClassLoader机制实现了真正的面向接口开发,并且可以在运行时动态加载和更新组件。OSGi有助于创建可重用、可协作的软件组件,简化了软件集成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OSGi
OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语。这些组件能够组装进一个应用和部署中。

主要两个特性
模块化/动态化(热部署)

基于OSGI能让我们在开发时真正的做到面向接口的开发,尽管面向接口的开发的思想已经被几乎所有的开发人员所接受,但由于有些时候偷懒或者无意中就直接去引用了实现的类,尽管象A a=new AImpl()这样的代码在Factory模式、IoC容器得到认同后出现的已经很少了,但无论是采用Factory模式还是IoC容器都是在设计期隐性的对实现设置了直接的依赖,而非运行期去寻找可用的依赖的,而同样由于A a=new Aimpl()还是可以直接的写,导致了有些时候还是会出现这样的强制依赖的代码,而OSGI提供为每个Bundle提供独立的ClassLoader机制的方法则让我们可以真正的做到面向接口的开发

对于系统开发方面,产生的影响主要是让单元测试显得更为重要了,毕竟所有的依赖都是动态设置的,要依靠集成测试来发现问题就显得更为麻烦了,所以基于OSGI的系统会更多的依赖Mock进行单元测试,其他的影响就是不再通过引用lib或project的方式来设置对于其他工程的依赖等等。

规范的模块开发方式其实是大部分软件公司都期盼的,规范的模块开发方式就意味着规范的人员技能培养体系以及规范的人员技能要求,这对于软件公司来讲是很重要的。
但为什么大部分软件公司都形成不了规范的模块开发方式呢,因为没有统一的规范的基础架构体系的定义,往往每个项目、每个产品都会因为架构师的偏好、技术的发展而导致模块的开发方式完全不同,这就使得软件公司在人员技能要求、培养上很难形成统一,而OSGI为这个问题提供了解决方案,基于OSGI的系统采用规范的模块开发、部署方式构建系统。


插件体系
Eclipse
Portal-portlet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值