服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

struts vs turbine


  jianhua23  
  
  
  struts 和 turbine 我都用过并且做过项目,我想在这个问题上我还是有点发言权的:-)
  
  struts 比 turbine 的结构简单多了,换而言之,struts 是一个非常纯的 web framework,它也仅仅只是一个 framework.struts 的官方定义中说了其符合 mvc,我并不是非常认同.struts 很好的完成了 vc(visual & control),但它并没有提供相应的m(module),或者说不明显.struts 最好的搭档可能就是 ejb 了,因为 ejb 补充了它的 m.
  
  而 turbine 则不然,它的设计思路决定了它是一个 web 应用的完全解决方案.turbine 并不是十分符合 j2ee 标准.它有自己一整套解决方案,它是一个真正意义上的 mvc 模式框架.它具有大量的子项目来支持它的应用(子项目树仅次于jarkarta commons 位居第二)
  
  turbine 要比 struts 难理解,难学,但是掌握它是有意义的.如果你只是要写一个 web app 的话,turbine 开发要比 struts 快.
  
  turbine 支持 velocity,webmacro,cocoon(xslt) 等等,虽然它也支持jsp,不过它的最最亲密的战友任是 velocity.
  
  struts 对于写过 jsp 和 servlet 的人来说可能会很轻切.jakarta 项目组的相关项目 taglibs 提供了大量的 tag 以支持 struts,使 struts 的结构性和统一性变得很好,struts 的另一个 turbine 不如的地方是它的 mapping-forward 机制,在 struts 中是用 struts-config.xml 文件来管理的,虽然随着你的项目的扩大,这个xml文件会变得很大以至于难以维护(一般大的项目中会有专人管理这个文件),但是它的统一性和导航逻辑性比 turbine 好的多,turbine 把相应的逻辑以 velcoity template 类来控制.在相应的velocity 页面中也会用相关的导航.
  
  和 struts 的 struts-config.xml 相比有些乱(不知道 turbine 3.0 中会不会有些提高).
  
  turbine 的一个极棒的子项目是 torque,它提供了一个很好的 jdo 环境,而且 torque 的机制会将 xml 格式的数据定义编辑成相关数据库的表(支持现在流行的几乎所有的数据库),并编译出和表结构一一对应的java class.
  
  torque 中的 criteria 和 basepeer 类具有极高的代码水准,我会在以后的文章中仔细剖析这两个类.
  
  写到这里吧,最近的文章我会针对于 turbine 做详细的分析和说明.
  
  还有一点很重要,现在 turbine 支持分布式计算方式(以前批评 turbine 应用局限性的很重要的理由),这个子项目叫 jcs.
  http://jakarta.apache.org/turbine
  http://jakarta.apache.org/struts
  
  注:大家都用过 tomcat 吧,在tomcat 4.1.10 以上版本提供了 administrator tools 图形配置界面,这个系统是基于struts的,看看源代码吧,几乎用到了 struts 所有的类和方法,极好的示例代码哦

扫描关注微信公众号