HiveMind 和 Spring 的比较(之二)

原创 2004年09月27日 22:57:00

紧接上文。
   
从上文的 HiveMind Spring 总体架构图片你可以看出 两者的结构差异很大。首先,Spring提供了一套完整的组件,从页面展示的MVC框架到后台的数据库ORMapping等统统都有,其中有些是Spring自有的,有些则提供了集成第三方优秀组件的接口。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    相比之下HiveMind就单薄多了。我第一眼看到HiveMind的架构图片的时候想到了 微软COM组件模型的图片。 如下:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

               

                                                                    o_comstruct.jpg


       这里贴出COM的图片来,是为了更好的比较和说明HiveMind的结构。

       HiveMindSpring的不同在于,HiveMind使用以组件服务为导向的架构。也就是说每一个Java类提供一个服务( Service point ),给这个服务起名字注册到HiveMind Registry后,客户应用程序就可以使用这个服务名字来使用Java类提供的服务。(见后面的代码)

       了解COM原理的读者可能都知道,在COM组件接口不变的情况下,即使COM的算法实现完全发生变化,也丝毫不受影响客户端的使用。这也就是提倡的面向接口的编程。从这一点上来说HiveMindCOM如出一澈。Spring 框架没有这个基于服务的特性。(下文专门分析Sprign的实现原理)。

       HiveMind另一个特点是借鉴Eclipse插件的实现方式。在HiveMind 术语中你常会看到如下XML定义:

       <module id=“..“>

       <service-point id=“..“ interface=“..“ >

       <configuration-point id=“..“ >

       等等这样的定义。

       HiveMind中你可以把相关配置文件放在多个Xml文件中而不像Spring那样放在一个文件中。只要把名为:hivemodule.xml 的文件放在ClassPathHiveMind就可以识别到。

       上面提到的 面向服务和面向配置的特性正是HiveMind区别于Spring的地方。

       说了这么多区别,并不是要把HiveMindSpring对立起来,其实HiveMind是可以和Spring紧密继承使用的。

       我现在的感觉有点类似于:COM组件和IIS的关系,毕竟Spring已经很强大了。

       看个例子吧:

HiveMind来实现AOP的拦截方法执行的效果:

配置文件:

hivemodule.xml:

Java代码:

Adder.java:

AdderImpl.java:

 

HiveMain.java:

运行后的效果如下:

 

       上面有个小细节:就是HiveMind中对函数参数的处理非常好,可读性非常高。

      

 

       待续

    田春峰 
┏━━━━━━━━━━┓
┏━┓┃中秋快乐┃┏━┓
┃逢┃┗━━━━┛┃迎┃
┃千┃ ━  ━━ ┃中┃
┃禧┃━┳━┏━┓┃秋┃
┃举┃┃┃┃┗━┛┃佳┃
┃世┃┃┃┃┏┳┓┃节┃
┃共┃ ┃ ┃╋┃┃同┃
┃欢┃ ┛ ┗┻┛┃庆┃
┗━┛       ┗━┛  

版权声明:本文为博主原创文章,在不删除、修改文章内容的情况下,可以自由转载。

HiveMind与Spring 的比较

HiveMind与Spring 的比较可能没用过HiveMind的关系,有些部分没看明白。So how does HiveMind compare to Spring and PicoContaine...
  • tmpfree
  • tmpfree
  • 2005年09月16日 17:59
  • 774

HiveMind 和 Spring 的比较 (之一)

    HiveMind 和 Spring 从实现的功能上看有很大的部分是重叠的,都是用ICO控制翻转、依赖注射等原理来实现相似的功能,从这一点上讲两者的指导精神是一致的。    存在的就是合理的。H...
  • accesine960
  • accesine960
  • 2004年09月25日 10:41
  • 4861

Hivemind简介

1.      一个完整的例子a)        目录结构|--|  |--META-INF|  |--|     |--hivemodule.xml|  |--log4j.properties||-...
  • nickcen
  • nickcen
  • 2007年07月25日 15:18
  • 3496

最简单的HiveMind开发应用

1、在Eclipse中建立项目,并导入hivemind-1.1.jar,javassist-3.0.jar,jakarta-oro-2.0.6.jar三个类包。Jakarta-ORO正则表达式库,它是...
  • Starsiday
  • Starsiday
  • 2006年09月14日 21:26
  • 2363

轻量级容器分析(light weight container)

                                                            轻量级容器分析前言        目前,基于Web的MVC框架在J2EE的世界内...
  • meetyou930
  • meetyou930
  • 2005年01月11日 13:47
  • 1282

IOC是什么?分析的实在是好

Inversion of Control,即反转控制,或许说为依赖注入更为合适。IoC就是一种设计模式。  Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不...
  • panfanglin
  • panfanglin
  • 2014年06月04日 10:15
  • 992

安全框架Shiro和Spring Security比较

安全框架Shiro和Spring Security比较 Shiro 首先Shiro较之 Spring Security,Shiro在保持强大功能的同时,还在简单性和灵活性方...
  • oyxm0
  • oyxm0
  • 2017年01月25日 00:02
  • 1368

spring cloud 1:Spring Cloud和dubbo对比

最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论 微服务架构 。近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理S...
  • shuijieshuijie
  • shuijieshuijie
  • 2016年11月11日 21:00
  • 12582

HiveMind初探

今天HiveMind 1.0 的final版本出来了, 看了看他的examples代码。 有了IoC(DI)的感觉之后再看这些代码, 越看感觉越清晰。 实现一个IoC的容器本身没什么可说的, 现在就以...
  • mechiland
  • mechiland
  • 2004年09月24日 17:47
  • 2648

Spring中的@Transactional深度分析之二

接着上次文字的内容,继续深入讲解isolation,timeout,readOnly之类的用法。
  • blueheart20
  • blueheart20
  • 2015年03月27日 23:31
  • 7153
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HiveMind 和 Spring 的比较(之二)
举报原因:
原因补充:

(最多只允许输入30个字)