虽然网上大量有人在宣传从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的页面直接转化过来。
分享到:
相关推荐
JavaScript UI 库Webix ,其中包含的组件超过45个,用这些组件可以构建跟HTML5 和 CSS3 兼容的程序,这些程序不仅能在个人电脑...此外这些组件还能用在一些MVC框架中,比如RoR、ASP.NET MVC、Spring、Struts 和 Grails.
* 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 ...
7. **替代方案**:随着Java世界的发展,例如Spring MVC框架的普及,以及Groovy和Grails等基于JVM的脚本框架的出现,Struts Scripting的重要性逐渐降低。现代开发更倾向于使用这些替代方案,它们提供了更强大的功能和...
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...
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...
本文将详细介绍8种流行的Java Web框架,包括Grails、GWT、JSF、Play、Spring、Struts、Vaadin和Wicket。 1. **Grails** Grails是一个基于Groovy语言的开源框架,它提供了快速开发Web应用的能力。安装Grails时,需...
之前看过struts, spring mvc, ror, grails等框架,其中最欣赏ror了,struts的灵活性对于多数中小型项目而言显得对于多余。特别是在AJAX如此盛行的今天,现有的框架对AJAX的支持显得不足。于是,萌生了开发一套简易...
根据给定的信息,本文将对Java相关的架构图进行详细的解读与分析,主要涵盖Spring、Hibernate、Struts(包括Struts1和Struts2)、JSF、Seam、Grails、DWR、J2EE、Oracle等技术栈的核心概念及其架构特点。 ### 1. ...
5. **Web框架支持**:JRuby可以很好地与Java Web框架集成,例如Spring、Struts和Grails等。这使得开发者可以用Ruby来编写服务端逻辑,同时利用Java的现有基础设施。 6. **持续集成**:对于大型项目,JRuby可以与...
除了这些主流框架,本教程可能还会涉及其他如Struts、Play Framework、Grails等,它们各自在Web开发领域有着独特的应用场景和优势。Struts是早期的MVC框架,而Play Framework是基于Akka的现代全栈框架,强调开发者的...
Java中有许多著名的框架,如Spring、Struts、Hibernate和MyBatis等,这些框架各具特色,广泛应用于不同的项目场景。 Spring框架是Java企业级应用开发中最常用的框架之一,它提供了一种依赖注入(Dependency ...
9. **Grails**:Grails是一个基于Groovy语言的全栈式Web开发框架,它提供了丰富的插件系统,简化了开发流程,适合快速构建应用。 10. **Vert.x**:Vert.x是一个轻量级的工具包,用于构建反应式、异步、非阻塞的后端...
etmvc + Easyui +oracle 开发实例,带数据库,内有treegrid,tree,data等案例... 简易但不简单,其设计和实现借鉴业界众多的优秀框架,如struts,spring mvc,ror,grails等, 力图为Java开发人员提供一套高效的开发框架。]
在JavaWeb开发中,常见的简单框架有Spring MVC、Struts2和Play Framework。这些框架旨在简化MVC(Model-View-Controller)模式的实现,提高开发效率和代码质量。 1. Spring MVC是Spring框架的一部分,它提供了一种...
此外,可能还会涉及Struts、Grails等其他轻量级框架。 3. **Web服务**:讲解如何使用JAX-WS和JAX-RS创建和消费SOAP和RESTful Web服务,以实现不同系统之间的集成。 4. **设计模式**:讨论在J2EE开发中常见的设计...
在JSP开发中,常见的框架有Spring MVC、Struts、JSF等。 **Spring MVC** 是Spring框架的一个模块,专为构建Web应用程序而设计。它提供了一个模型-视图-控制器(MVC)架构,使开发者能将业务逻辑、数据处理和用户...