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

Grails,移动互联网时代服务器端开发的利器

阅读更多
Grails 对国内的很多开发人员来说可能比较陌生,它是一个基于Groovy编程语言的开发框架,Groovy是基于JVM的一种动态编程语言,在Java语法基础上增加了很多有用的动态特性。
 
目前移动互联网时代前端开发项目越来越多,包含有Android/iOS原生开发,还有HTML5开发。前端开发要跟后台服务器端交互,一般是通过调用服务器端HTTP API接口的方式,所以服务器端的API接口开发越来越重要。
 
为什么要选择 Grails 做服务器端API接口开发?
 
首先,Grails 是基于Java虚拟机这个基础平台的,在 Grails 里可以很方便地调用Java代码,也就是说Java领域这么多年来所积累的各种各样的技术,在 Grails 框架上都可以发挥作用。这是一个很关键的因素,例如各种数据库驱动、各种网络协议开发包和最近比较流行的大数据方面的各种开发技术等,这些项目和产品首先会考虑支持Java。
 
后端接口API要重点考虑后端系统整合问题,这样才可以为前端提供功能强大的接口,因此Java领域的各种技术沉淀是很宝贵的。例如很早以前的金融类的很多大型系统是用EJB技术开发的,如果在API接口里要实现跟EJB对接,这个就不是其他开发语言能做到的了。
 
像目前的Node.js是基于JavaScript的服务器端开发技术平台,因为比较年轻,技术沉淀还不够多,所以在对接一些已有系统方面,相对薄弱一些。还有像Python和Ruby等,也是面临类似的问题。
 
其次,Grails 大大简化了服务器端的开发工作。Grails 是基于 Spring MVC 和 Hibernate 技术的,最近的版本已经支持多种 NoSQL 数据库,然后进行了很大幅度的封装,简化了很多繁琐的处理,提供了简单而且一致的数据库层及Web层的开发标准。
 
我们拿Java开发常用的一些开发技术为例探讨一下,比如数据库层,目前有很多选择,像JPA/Hibernate、JDO、iBatis/MyBatis 和 JDBC 等,你会选择哪一种?每个Java开发人员应该都有自己的偏好,由此引起的争论也总是比较激烈。
 
这还仅仅是数据库层,在服务层和Web层又会有多种选择,所以从整套开发框架角度(Full Stack)看,这种技术组合就太多了。所以当一个Java开发人员到了一个新环境,往往会发现,这个新环境所用的Java的技术组合跟他以前用得是不一样的,所以只能花时间去学些这个新组合,要达到很熟练的程度需要花不少时间的,相信每个Java开发人员都会有这方面的体会。
 
Grails 是基于主流的Java技术,例如 Spring MVC 和 Hibernate,然后进行封装,提供了一致的技术标准,对于后来的新技术支持也是类似。比如对于数据库层,基于Hibernate的数据库访问接口跟后来的基于NoSQL的数据库访问接口基本是一致的,开发人员不需要再去学习新的一套接口标准,所以可以把主要精力集中到具体业务应用的开发上面。
 
最后,Grails 所基于的 Groovy 动态开发语言所带来的效率提升是巨大的。这方面举个例子会比较容易理解,每个开发团队做项目做久了都会积累一套自己的工具类库,这些工具类库把一些重复性的处理提供了简化的解决方案,比如以前一大堆代码要实现的功能现在调用一个工具类的函数就搞定了。
 
如果这种工具类的函数积累的越来越多,对于原有团队的开发人员来说,开发效率应该是越来越高,这就是技术积累所发挥的作用。而基于这些函数开发出来的项目对于那些只熟悉标准Java技术的开发人员来讲,就难以理解了,感觉就像是一套新的开发技术一样。
 
Groovy 跟这个道理类似,它把平时Java开发中一些常见的繁琐处理做了很多简化,以前要很多行代码实现的功能现在可能用1行代码就能做到了。但它更进了一步,是抽象到一套开发语言的层次了,不是简单的函数调用了,你用它的语法编程,它在后台为你自动完成相应工具类函数的调用。
 
但 Groovy 在兼容 Java 标准语法方面考虑得很周到,绝大部分普通Java类可以直接作为 Groovy 代码来用,也就是说你以前写的一个类叫 Test.java,一般直接改文件名为 Test.groovy 就可以作为 Groovy 代码执行了。这个跟其他的基于Java的动态语言是不同的,例如Scala,是跟 Java 完全不同的一套编程语法,Scala这种学习曲线是很比较陡的,而 Groovy 相对就比较平缓,普通 Java 开发人员可以继续用 Java 的语法做开发,然后渐渐学习 Groovy 的特性,就可以越来越多地用 Groovy 语法了。
 
实际示例:
 
下面举个API开发的示例来体会一下 Grails 的效率。
 
我们做一个简单的电话号码簿的查询接口。
 
先定义一下数据模型:
 
class Phone {
   String name
   String phoneNumer
   String memo
}
 
上面是定义了一个 Grails domain 类,Grails 会自动同步创建数据库的表。
 
然后做一个 Controller 类,写一个根据姓名查询对应电话号码的接口。
 
class PhoneApiController {
   def queryPhone() {
      //拿到URL传递过来的查询参数
      def queryParameter1 = params.name
      //调用domain类的查询接口,这些接口是 Grails 自动提供的,不需要我们写什么代码
      def phone = Phone.findByName(queryParameter1)
 
      //如果查询到结果
      if (phone) {
         //把查询结果以JSON格式返回给调用端
         render phone as JSON
      } else {
         //返回错误信息给调用端,一般需要封装一个 errorCode 返回值用于调用端识别是否没有查询到结果,这里只是简单返回错误信息
         render "查不到电话号码"
      }
   }
}
 
 
上面的这个接口可以通过这个 URL 来调用:
 
http://服务器IP:端口/项目名/phoneApi/queryPhones?name=张三
 
是不是很简单,很容易理解?
 
 
Grails 对于提高服务器端的开发效率很有帮助,建议Java开发人员了解学习一下,并且可以考虑应用到具体项目中。当你熟练掌握 Grails 的时候,你会觉得写代码也可以是很美妙的事情,因为你可以专注于要解决的实际业务需求,而不是翻来覆去地折腾开发框架方面的问题。特别是对于移动互联网时代的开发,这种快速开发服务器端接口的能力是很重要的,而同时也不需要放弃以前Java领域那么多的技术积累。
 
 
注:附件是本文中示例的源代码,可以直接运行,示例用的是 Grails 2.3.11 版本。
分享到:
评论

相关推荐

    Grails企业web应用开发与部署

    Grails企业web应用开发与部署 grails webmail grails 服务器环境 ...

    eclipse开发grails插件

    与此同时,Eclipse作为一款强大的Java集成开发环境(IDE),也提供了丰富的插件支持,帮助开发者更高效地进行Grails项目的开发。本篇将详细讲解如何使用Eclipse开发Grails插件,以及涉及的相关知识点。 首先,让...

    Grails技术精解与Web开发实践.part2

    自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。 我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。

    Grails技术精解与Web开发实践.part1

    自己买的书,然后用扫描机扫描的,整个文件太大了,不能一次性上传上来,所以拆成3个part。...我自己学grails很想看这本书,结果网上没有,就自己去买了,然后共享给需要的人。 如果有什么问题请联系我下架。

    grails快速开发web

    ### Grails 快速开发 Web 应用程序 #### 一、Grails 概述 Grails 是一种基于 Groovy 的开源应用框架,用于简化 Web 应用程序的开发过程。它采用约定优于配置的原则,这使得开发者可以更快地创建功能丰富的 Web ...

    grails敏捷开发

    **Grails 敏捷开发** Grails 是一个基于 Groovy 语言的开源Web应用框架,设计用于快速开发、高效构建动态、敏捷的Web应用程序。它借鉴了Ruby on Rails的许多优秀理念,同时提供了Java平台的强大功能和兼容性。在...

    Grails技术精解与Web开发实践.pdf

    Grails是一个基于Groovy语言的全栈Web应用开发框架,它遵循敏捷开发的理念,并且简化了基于Java的Web开发。Grails的核心是基于约定优于配置的原则,它提供了一套自动化的方式来处理项目的结构、数据持久化和Web层的...

    Grails技术精解与web开发实践11-20章

    《Grails技术精解与Web开发实践11-20章》是一本专注于Grails框架的深度解析书籍,尤其适合初学者和希望提升Grails开发技能的IT从业者。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效、灵活和强大的特性...

    Grails技术精解与web开发实践2-10章

    《Grails技术精解与Web开发实践2-10章》是针对Grails框架的一份珍贵资源,适合初学者及有经验的开发者深入理解并掌握Grails技术。这本书的章节涵盖了从基础到进阶的多个方面,旨在帮助读者全面了解和运用Grails进行...

    使用Grails快速开发Web应用

    ### Grails快速开发Web应用:知识点详解 #### Grails框架概览 Grails是一个基于Groovy语言构建的开源MVC(Model-View-Controller)Web开发框架,以其高效的开发速度和简洁的代码著称。其核心优势在于: 1. **快速...

    grails 开发框架-1

    grails1.0开发框架1 类似于ruby on rails的框架。

    grails-2.4.2开发包

    Grails支持热部署,即在开发过程中修改的代码可以立即生效,无需重新启动服务器。这一特性极大地提高了开发效率,减少了等待时间。 综上所述,Grails 2.4.2作为一款成熟的Web开发框架,结合了Groovy的灵活性、...

    Grails从零开始开发项目二

    在本节中,我们将深入探讨"Grails从零开始开发项目二"的相关知识点,这是一个关于使用Grails框架进行Web应用开发的学习过程。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效的开发速度和丰富的插件生态...

    使用 Grails 快速开发 Web 应用程序

    《使用 Grails 快速开发 Web 应用程序》 Grails,一个基于Groovy动态语言的开源MVC框架,为Web开发提供了高效且简洁的解决方案。自2007年发布以来,Grails以其快速开发能力,降低了Web应用的复杂性,吸引了众多...

    Grails开发之(Rest教程).pdf

    标题中提到的"Grails开发之(Rest教程)"表明本文是一份关于Grails框架下进行RESTful服务开发的教程。Grails是一个使用Groovy语言编写的高生产力的框架,其使用约定优于配置的理念,允许快速开发Web应用程序。...

    grails 开发文档 合辑

    Apress.Beginning.Groovy.and.Grails.From.Novice.to.Professional.Jun.2008 grails_programming Grails1.1中文文档-----2009.3.25 Grails入门指南(第二版) Groovy经典入门 Programming Groovy 2 合集,超实惠哦

Global site tag (gtag.js) - Google Analytics