Spring
作为一个新的事实上的工业标准,OSGi已经受到了广泛的关注,就在不久前EclipseCon也发布企业级OSGi标准,而IBM以及Eclipse也宣称将大力发展Java模块化。Spring是一个著名的轻量级Java EE开发框架,其特点是面向接口编程和非侵入式的依赖注入。
将OSGi和Spring结合能充分发挥二者各自的特长,更好地满足企业级应用开发的需求。Spring开发组织在2008年发布了将OSGi和Spring结合的第一个版本:Spring-DM。
dmServer是一个完全模块化部署的,基于OSGi的Java服务器,为运行企业Java应用和Spring应用提供更加强大的灵活性和可靠性。SpringSource应用平台是构建在Spring、OSGi和ApacheTomcat之上的应用服务器,这个新的应用服务器摒弃了原有的JavaEE服务器标准,自然而然地将Spring编程模型展现其中,随之而来的还有一套基于OSGi内核构建的全新部署和打包系统。
实例教程:
一、.指定TargetPlatform到所用到的所有的bundle包的目录中。
二、创建一个Service接口bundle
新建一个接口类:com.infotech.test.common.ShowMsgInfo;
同时新加一个接口方法:publicStringGetMsgInfo();
打开这个接口bundle工程的MANIFEST.MS文件,在Runtime/ExprotedPackages中添加刚刚新建的接口类,使之对外提供这个服务。
三、创建一个接口bundle的实现bundle
打开这个接口bundle工程的MANIFEST.MS文件,在Dependencies/ImportedPackages中添加上面新建的接口类:
新建一个接口实现类:ShowMsgInfo:
在这个类中,实现接口中的方法:
packagecom.infotech.test.service;
importcom.infotech.test.common.IShowMsgInfo;
publicclassShowMsgInfoimplementsIShowMsgInfo{
@Override
publicStringGetMsgInfo(){
return"HelloWord!!!";
}
}
接下来,我需要将这个实现类发布成为一个OSGI服务:在工程新一个目录OSGI-INF,并新建一个components.xml文档。
打开这个接口bundle工程的MANIFEST.MS文件,添加一行:
Service-Component:OSGI-INF/components.xml