|||
(1) 基于 OSGi 的面向服务的组件编程
曹 羽中 (caoyuz@cn.ibm.com), 软件工程师, IBM中国开发中心
曹羽中,在北京航空航天大学获得计算机软件与理论专业的硕士学位,具有数年的 unix 环境下的 C 语言,Java,数据库以及电信计费软件的开发经验,他的技术兴趣还包括 OSGi 和搜索技术。他目前在IBM中国系统与科技实验室从事系统管理软件的开发工作,可以通过 caoyuz@cn.ibm.com与他联系。
简介: OSGi(Open Services Gateway Initiative,开放服务网关协议)提供了一个面向服务组件的编程模型,基于 OSGi 编程,具有模块化,标准化,面向服务,动态性,易复用,易扩展,易部署等诸多优点,本文介绍了基于 OSGi 开发一个应用程序的过程,读者可以学习如何基于 OSGi 开发自己的应用,并从中体会 OSGi 上述的优点。
http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-osgi/
(2)OSGi开发常见问题与编程技巧
本文简要讨论了如何看待OSGi,以及在OSGi之上进行开发的一些关键概念,常见问题及编程提示 。
理解类加载机制
关于Java的类加载机制问题可以说是一个热门话题,但是据我所知,大多数Java开发人员对于Java的类加载机制并不是完全理解甚至是并不过多的关注。在此我不打算详细讨论Java的类加载机制,如果你不是很熟悉,可以Google一下:)。
通常,虚拟机启动时首先加载内部类(java.*等等,即:rt.jar),然后加载位于CLASSPATH环境变量下的类代码,然后加载用户的类代码。 很多应用系统,如Tomcat在加载完CLASSPATH下的类代码后使用自定义的ClassLoader开始内部的类代码及Web应用的加载过程。
如果开发人员在自己的类定义A中引用其他的类定义B,虚拟机在加载该类时,根据加载该类的ClassLoader的实现机制,通常与虚拟机加载相反的过程查找引用的类。此处常见的两种机制是Self-First和Parent-First。
Self-First机制首先查找当前ClassLoader加载的所有类中是否存在引用的类B,如果没有则交给其Parent ClassLoader进行查找,如果父类加载器加载的类中存在类B则返回,否则代理交给其父类加载器继续查找,依次类推直至根类加载器。
对于Parent-First机制,当前类加载器首先将查找过程代理给其父类加载器进行查找,父类加载器同样继续代理给它自己父类加载器直至根类加载器, 如果根类加载器查找到自己加载的类中存在引用的类B则返回,否则,由其子类加载器查找类B,直至当前类加载器。
关于该文章的其他详细内容见:http://hi.baidu.com/prince_zyb/blog/item/9ccace06abfc0e7203088152.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-20 02:40
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社