知识大全 Spring VS. HiveMind 优点缺点大比拼

Posted

篇首语:知识是有学问的人的第二个太阳。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring VS. HiveMind 优点缺点大比拼相关的知识,希望对你有一定的参考价值。

Spring VS. HiveMind 优点缺点大比拼  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在如下方面HiveMind优于Spring:    * HiveMind强制针对接口编程     * HiveMind使用module概念来分组管理service 利于并行和迭代开发     * HiveMind使用的配置文件格式更清楚简明 特别是将接口和实现统一定义成 个service 而Spring可能要定义好几个bean元素     * 在增加或移去interceptor时 HiveMind只要修改 行配置文件 而Spring至少要修改两个bean元素     * 在定义interceptor时 HiveMind采用javassist类库 性能优于Spring采用的JDK proxy     在如下方面Spring优于HiveMind:    * Spring的AOP框架较为成熟 编写interceptor的难度较低     * Spring内建和Hibernate的集成 HiveMind尚未内建该集成     * Spring的transaction management支持各种transaction API 如JDBC JDO JTA等等     基于以上发现 建议在下一项目中采用HiveMind 因为已经自行开发了HiveMind和Hibernate的集成以及简单的transaction management代码 因而在下一项目中并不特别需要Spring的相应功能 不过 当前HiveMind是 rc 版 一旦发布 release版则应尽快升级     [Spring VS HiveMind]:    * Service Oriented?  Spring : Yes   HiveMind : Yes     * How to define a Service?  Spring :  Define a POJO (在Spring术语中称之为bean 但实际上是POJO )    配置文件 <bean id= exampleBean class= examples ExampleBean />  HiveMind:  Define an interface and core implementation POJO     配置文件 service point元素   Comments:  HiveMind强制针对接口编程 优于Spring     * 是否提供service的namespace?  Spring:  仅仅使用id属性来唯一识别service   支持多配置文件   HiveMind:  提供Module概念用于管理service namespace 类似于java中的package   支持多个配置文件   Comments:  HiveMind略优     * Service Lifecycle?  Spring:   Lifecycle models: Singleton Prototype   HiveMind:   Lifecycle models: Primitive Singleton Threaded Pooled   Comments   最常用的就是Singleton模型 虽然HiveMind模型多于Spring 但不构成优势     * Who manages service?  Spring: BeanFactory or ApplicationContext   HiveMind: Registry     * Dependency Injection?  Spring: yes type and type supported   HiveMind: yes type and type supported     * Service Depenency Injection?  Spring:  使用ref元素   <property name= beanOne ><ref bean= anotherExampleBean /></property>  HiveMind:  在配置文件中使用set service元素   <set service service id= anotherService />  Comments:  在更换实现时 HiveMind因强制针对接口编程而占有优势     * Intializing and finalizing methods?  Spring :  <bean id= exampleInitBean class= examples ExampleBean   init method= init()   destroy method= cleanup() />  />  HiveMind:  <construct class= initialize method= />  不支持finalizing method   Comments:  Spring略优     * How to configure AOP?  Spring:  <! Step : 定义核心实现 >  <bean id= personTarget class= mypany PersonImpl >  <property name= name ><value>Tony</value></property>  <property name= age ><value> </value></property>  </bean>  <! Step : 定义Interpreter >  <bean id= myAdvisor class= mypany MyAdvisor >  <property name= someProperty ><value>Custom string property value</val></property>  </bean>  <bean id= debugInterceptor class= springframework aop interceptor Nop    Interceptor >  </bean>  <! Step : 定义接口 >  <bean id= person   class= springframework aop framework ProxyFactoryBean   >  <property name= proxyInterfaces ><value> mypany Person</value></    property>  <property name= target ><ref local= personTarget /></property>  <! Step : 声明引用 interpreter >  <property name= interceptorNames >  <list>  <value>myAdvisor</value>  <value>debugInterceptor</value>  </list>  </property>  </bean>    HiveMind:  <! 定义接口 >  <service point id= Adder interface= slhynju doconline business Adder >  <! 构造核心实现 >  <invoke factory>  <construct class= slhynju doconline business AdderImpl >  <set service property= sessionSource service id= SessionSource />  </construct>  </invoke factory>  <! 声明引用 interpreter >  <interceptor service id= hivemind LoggingInterceptor />  <interceptor service id= TransactionInterceptor />  </service point>  Comments:  Spring将接口和核心实现分开定义成两个bean HiveMind则统一定义成一个service     这点上HiveMind优于Spring     Spring的AOP框架较为成熟 HiveMin的Interpreter factory仍需要降低编写难度     HiveMind采用javassist 性能上优于Spring采用JDK proxy     * How to configure declarative transaction management?    Spring: 采用AOP     <bean id= petStoreTarget class= springframework samples jpetstore dom    ain logic PetStoreImpl >  <property name= accountDao ><ref bean= accountDao /></property>  <! Other dependencies omitted >  </bean>    <bean id= petStore   class= 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集成很致命    cha138/Article/program/Java/ky/201311/27989

相关参考

知识大全 优点和缺点

SQL实战新手入门:优点和缺点  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  优点和缺点  当权

知识大全 请问,面试时怎样阐述优缺点,我的优点是善良,缺点是过于善良

请问,面试时怎样阐述优缺点,我的优点是善良,缺点是过于善良亲,你的优点在职场中根本够不上优点,而且可能还是缺点;职场中要的是职员的狼性,善良的人容易被淘汰;所以我建议你选一些别的,比如:认真,细心,有

成数分保的优点和缺点

成数分保的优点和缺点成数分保的优点是保费和赔款的计算等手续较溢额合同分保简单,此外分出人和接受人共命运,共享盈利共摊亏损。缺点是,对于保额较小的业务,分出人虽能自留,但按合同规定有义务分出,从而有较多

片剂的优点和缺点

片剂的优点和缺点片剂的优点1、剂量准确,药物含量均匀。2、质量稳定,易氧化变质或潮解的药物可包衣。3、服用、携带、运输和贮存较方便。4、可实现机械化生产,产量大,成本低。5、通常片剂的溶出度和生物利用

知识大全 面试如何化缺点为优点

参加招聘面试,最怕考官提些让人“无从下口”的问题,像“你有哪些缺点?”,就是典型的面试难题。对这个问题,可以把自己的优点当成缺点来说,既解答了难题,又全方位地推销了自己一把。一般来讲,对应征有利的优点

知识大全 发扬优点还是弥补缺点

发扬优点还是弥补缺点这个决定当然是要看一下收益成本对比啦!如果发扬优点,成本增加得不太多,却能收到很大的收益,如可以拿省级奥数第一名,当然要发挥专长,发扬优点啦。但是,如果你英语不好,差1分2分总及不

表定法的优点和缺点

表定法的优点和缺点表定法的优点:第一,它适用于程度不等的风险和各种规模的投保单位。第二,它可以鼓励被保险人加强防灾防损。因为费率的高低决定于客观标准的规定,如果防灾防损搞得好,则可规定平均风险以下的客

知识大全 我觉得我浑身上下都是缺点,没有优点

我觉得我浑身上下都是缺点,没有优点不是这样的你肯定有你的优点,可能现在没发现,加油感觉自己浑身上下都是缺点,好失败太悲观了吧!至少你敢于承认自己的缺点,有自知之明,这是最大的优点!累了一天,我觉得浑身

知识大全 范式的优点和缺点

高性能MySQL:范式的优点和缺点  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  范式的优点和缺

知识大全 反范式的优点和缺点

高性能MySQL:反范式的优点和缺点  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  反范式的优点