`
taimukang
  • 浏览: 181052 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

从spring+struts到grails

    博客分类:
  • J2EE
阅读更多
虽然网上大量有人在宣传从Spring+Struts平台迁移到Grails平台的平缓,事实上也是如此。但资深的Spring+Struts平台开发人员迁移到Grails平台仍然需要有一些转变,其中大部分都是开发思想或者开发思路的转变。
  第一. 开发方式的转变。
  Spring+Struts平台的开发是平缓的,不管是CRUD,还是复杂的业务,Spring+Struts平台都要一视同仁,一步步来。对于 CRUD,它的简单只是在业务层,其他的,数据层、表现层Action、页面和它们之间的配置,一个都不能少,该做的都要做到。而复杂的业务,和简单的 CRUD的不同仅仅表现在业务层,多做的事情也大部分在业务层。
  而Grails平台的开发则是曲线式的,先快后缓。对于CRUD式的业务,在Grails平台只要一两个动作就完成了全部的功能。当然,我们必须对页面做一定的修改,以达到客户的要求。当CRUD业务完成以后,我们再在它们的基础上添加复杂的业务。
  往往从Spring+Struts平台转移过来的开发人员,会喜欢契约式的开发,而讨厌Spring+Struts的配置式的开发。对于Grails平台对CRUD开发的简化反而比较忽视,因为对于一个大型项目来说,CRUD所占的比例不大,而且很多开发人员也不认为Grails平台的脚手架产生的代码对他们有多少帮助,因为页面需要定制。
  其实,从我的经验来说,对于一个大型项目,CRUD所占的比重大约为五分之一到四分之一的样子,而在小项目中,CRUD所占的比重会更大一些。因此,虽然一个大项目开发完成以后,我们不记得我们曾做过CRUD的开发,但不可否认的是CRUD的开发在 Spring+Struts平台的确占了我们一部分的开发时间。Grails平台对这部分时间的节省,对我们来说也是值得庆贺的。
  所以,在Grails开发平台,当然拿到一个模块的时候,我们第一步要做的,不是按照业务的要求,按部就班的进行开发;而是首先要把其中的CRUD部分抽取出来,交给Grails平台来帮我们实现。然后,我们在它的基础上去做更为复杂的业务。这就要求我们在设计SD文档和demo的时候,要尽量将业务中的 CRUD抽取出来,集中而不是分散。这样有利于Grails平台来帮我们实现CRUD的功能。
  第二. 有关契约
  契约式编程相比较于配置式编程,在效率上的确高了很多。但需要注意的是,我感觉,对于大型项目来说,在编码的同时,维护一下controller、 action、服务层和页面的关系仍然是有很大的必要的。但这种维护是文档式的维护,不会干扰到程序和测试服务器的运行。一旦有了这个文档,在项目的维护过程中的作用是显而易见的。当然了,这种维护要我们更为细心,不要出错。因为如果在Spring+Struts平台,配置文件出错的话,测试服务器运行时会出问题的,这也是Spring+Struts平台配置讨厌的一个原因,一个人维护出错,down过他的代码的人的测试服务器都跑不起来。但文档维护显然没有这样的纠错机制,它的正确性需要的是维护人员的细心。
  就我的经验而言,使用契约的地方越多,就越需要文档。维护文档虽然会降低你的开发速度。但在项目的维护过程中,对你的维护效率的提高又是不言而喻的,特别是开发人员和维护人员不是同一个人的时候。
  第三. 有关页面开发
  传统的Spring+Struts平台的开发,我们直接把demo的页面拿来,转化成jsp文件,再在相应的位置填充所需要的变量,然后跟后台交互。
  而Grails平台的开发,我们是先开发CRUD业务,即由平台帮我们生成gsp文件,然后再根据demo的页面要求,修改它的Layout和填充必要的样式。
  然后,再由CRUD业务的页面铺展开来,继续完成其他的较为复杂的业务。复杂业务的gsp文件可以由demo的页面直接转化过来。
分享到:
评论

相关推荐

    webix资源下载

    JavaScript UI 库Webix ,其中包含的组件超过45个,用这些组件可以构建跟HTML5 和 CSS3 兼容的程序,这些程序不仅能在个人电脑...此外这些组件还能用在一些MVC框架中,比如RoR、ASP.NET MVC、Spring、Struts 和 Grails.

    Spring Recipes: A Problem-Solution Approach, Second Edition

    * Delivering web applications with Spring Web Flow, Spring MVC, Spring Portals, Struts, JSF, DWR, the Grails framework, and more. * Developing web services using Spring WS and REST; contract-last ...

    Spring攻略(第二版 中文高清版).part1

    6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4 将Spring与JSF集成 226 6.4.1 问题 226 6.4.2 解决方案 226 6.4.3 工作原理 227 6.5 将Spring与DWR...

    Spring攻略(第二版 中文高清版).part2

    6.3 将Spring与Struts 1.x集成 220 6.3.1 问题 220 6.3.2 解决方案 220 6.3.3 工作原理 220 6.4 将Spring与JSF集成 226 6.4.1 问题 226 6.4.2 解决方案 226 6.4.3 工作原理 227 6.5 将Spring与DWR...

    Etmvc入门学习详解

    之前看过struts, spring mvc, ror, grails等框架,其中最欣赏ror了,struts的灵活性对于多数中小型项目而言显得对于多余。特别是在AJAX如此盛行的今天,现有的框架对AJAX的支持显得不足。于是,萌生了开发一套简易...

    8种Java Web框架安装手记及HelloWorld

    8种Java Web框架安装手记,分别是Grails,GWT,JSF,Play,Spring,Struts,Vaadin,Wacket。全部是截止2013-12-19最新的框架版本,文档最后有链接可以下载所有相关资料和jar包以及示例程序,任何问题可以联系...

    etmvc + Easyui

    etmvc + Easyui +oracle 开发实例,带数据库,内有treegrid,tree,data等案例... 简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等, 力图为Java开发人员提供一套高效的开发框架。]

    java文集

    正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...

    etmvc:一个简易高效的web开发框架

    简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等, 力图为Java开发人员提供一套高效的开发框架。 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 ...

    java版斗地主源码-frontEndCourse:分享对于前端技术的理解和一些技术演示

    2、Spring、Grails又出来了;刚掌 握了jQuery的精髓,却发现有了HTML5和CSS3,大部分情况下用它多余;刚弄明白线程池等概念,突然流行起单线程 框架;刚把MySQL学会,MongoDB又火了。基本上大部分技术方向上每年都会...

Global site tag (gtag.js) - Google Analytics