1-Hivemind和Spring的比较

在如下方面HiveMind优于Spring:
  
  * HiveMind强制针对接口编程;
  
  * HiveMind使用module概念来分组治理service,利于并行和迭代开发;
  
  * HiveMind使用的配置文件格式更清楚简明,将接口和实现统一定义成1个service,而Spring可能要定义好几个bean元素;
  
  * 在增加或移去interceptor时,HiveMind只要修改1行配置文件,而Spring至少要修改两个bean元素;
          <service-point id="Adder" interface="org.apache.hivemind.examples.Adder">
             <create-instance class="org.apache.hivemind.examples.impl.AdderImpl"/>
             <interceptor service-id="hivemind.LoggingInterceptor"/>
        </service-point>

这里又发现了一个比Spring要方便的地方,interceptor可以直接定义在(我都不知道怎么说了,用Bean还是service-point?) Component的内部,用Spring的话还得另外建立一个新的Bean,然后指定Advice的作用域,如果系统中只有一两处需要的话,多一个 Bean的配置显得有点不雅。记得xWork也是这样定义interceptor的。
  
  * 在定义interceptor时,HiveMind采用Javassist类库,性能优于Spring采用的JDK proxy。

在如下方面Spring优于HiveMind:
  
  * Spring的AOP框架较为成熟,编写interceptor的难度较低。
  
  * Spring内建和Hibernate的集成,HiveMind尚未内建该集成。
  
  * Spring的transaction management支持各种transaction API,如JDBC、JDO、JTA等等。


How to configure declarative transaction management?
  
  Spring: 采用AOP。
  
  <bean id="petStoreTarget" class="org.springframework.samples.jpetstore.dom
  
  ain.logic.PetStoreImpl">
  <property name="accountDao"><ref bean="accountDao"/></property>
  <!-- Other dependencies omitted -->
  </bean>
  
  <bean id="petStore"
  class="org.springframework.transaction.interceptor.TransactionProxyFac
  
  toryBean">
  <property name="transactionManager"><ref bean="transactionManager"/></
  
  property>
  <property name="target"><ref local="petStoreTarget"/></property>
  <property name="transactionAttributes">
  <props>
  <prop key="insert*">PROPAGATION_REQUIRED</prop>
  <prop key="update*">PROPAGATION_REQUIRED</prop>
  <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
  </props>
  </property>
  </bean>
  
  HiveMind: 没有内建支持。我自行开发了一个TransactionInterceptor
  <interceptor service-id="TransactionInterceptor">
  <include method="add*"/>
  </interceptor>
  
  Comments:
  在Spring中假如需要混合使用TransactionInterceptor和其他Interceptor,需要定义多个bean。增大了维护成本。
  Spring支持JTA等各种Transaction manager。
  HiveMind配置文件更加清楚简明。但不没有提供JTA集成很致命。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值