HiveMind 和 Spring 的比较(之二)

紧接上文。
从上文的 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" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><font size="4"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></font></shapetype>

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中对函数参数的处理非常好,可读性非常高。

待续

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值