浏览 7188 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-05
OpenCore在最初设计的时候,没有考虑IoC容器的问题,主要是解决服务端的WEB开发、数据库访问、与REST远程通信等问题,我们完全使用 OSGi本身的服务注册机制,在插件启动时用代码实现依赖注射。直到今年8月份左右,我们把依赖注射的职责分离出来,在OSGi上实现了一个分级的IoC 容器,以简化开发,避免在插件启动类写依赖注射的代码。 OpenCore IoC容器有下面几个特性:
1. 每个插件(bundle)增加一个IoC的自描述文件META-INF/OPENCORE.XML,例如org.opengoss.web.core中,该文件的配置如下: <plugin version="1.0" id="WebCore"></plugin> xml 代码
2. 插件的激活类(Activator)不是直接实现OSGi本身的"BundleActivator"接口,而是继承由OpenCore提供的 "org.opengoss.core.PluginActivator",启动时,PluginActivator负责完成XML文件解析与依赖注射。 例如org.opengoss.web.core中的Activator代码如下: java 代码
3. 我们注意到上的的服务配置中有"scope"的属性,该属性定义一个服务的使用范围,确定一个服务注册到哪一级IoC容器。 4. 另外一点,我们在IoC基础上增加了动态扩展点功能,实现多对1的注射。 OpenCore整个项目代码发布在www.sf.net/projects/opengoss与code.google.com/p/opengoss下。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-02-11
大哥大,sf和google上都不能下啊!
|
|
返回顶楼 | |
发表时间:2007-02-11
吸血鬼 写道 大哥大,sf和google上都不能下啊!
download the sample project from: http://code.google.com/p/linktalk The core bundle is "org.opengoss.core.osgi" that implements the simple IoC container. We are still busy on this project but there is some different ideas on how to evolve the opencore platform. |
|
返回顶楼 | |