`
yongtree
  • 浏览: 233623 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Grails初体验

阅读更多
敏捷开发已经在业内如火如荼的开展起来,她给传统的软件开发模式带来了巨大的冲击,特别在互联网领域,敏捷已经不再是个口号。为了拥抱敏捷,各种动态语言也呈现强劲的态势,Ruby、Python等语言给Web开发带来颠覆性的革命。
Java作为当今应用最广的语言和平台,特别是在企业级领域,Java的王牌宝座无以撼动。但是在Web开发领域,Java却越来越显疲态,繁琐的配置,低效的部署,语法的不灵活,已经深深的影响了Java在Web开发领域的发展。
但是Java领域从来不缺创新,Ruby、Python陆续的移植到Java平台中形成JRuby、JPython,而Java原生平台下Groovy的诞生,更是为Java平台注入了敏捷的元素。Groovy相比于JRuby、JPython,与Java系出同门,与Java无缝的集成,共享Java的庞大类库,对于Java程序员来说,降低了学习的门槛。而Grails(Groovy On Rails)框架的诞生,也将Ruby On Rails的模式移植过来,为Java领域的Web开发提供新的方案和活力。现在就开始我的Grails之旅,来体验她带给我们的敏捷。
首先我们需要做一些准备工作。
1、     下载Grails SDK。最新版本:grails-1.2.1
2、     开发工具:IntelliJ IDEA。IDEA是目前为止对Grails支持最好的IDE。
开始体验Grails了。
1、     建立工程
在第一新建Grails工程时,会提示添加Grails SDK的路径。将下载的Grails SDK解压到任意目录,最好不要包含中文的文件夹。
新建grails应用
2、     建立好工程后的目录
Grails同样遵守“约定优于配置”的原则,对目录结构都有严格的约定。只要遵守这些约定去编程,将免去了繁琐的配置,做到最大程度的简化。
3、     运行测试,将出现以下的页面
到此,该应用算是建立成功了。
 
现在我们来体会他的便捷吧。
1、     在controllers文件夹下,建立HelloController
Java代码
  1. class HelloController {   
  2.     
  3.     def index = {   
  4.       render "hello world! my first grails";   
  5.     }   
  6.     
  7.  def world = {   
  8.     render "hello yt";   
  9.  }   
  10. }   
结果页面上将打印了render后面的话。就是这样简单,没有任何配置,没有定义任何请求路径的映射。通过名字和约定的后缀,自动定位到请求的方法。
2、     体验一下Grails的脚手架
在domain文件夹中定义一个domain类:Bookmark.groovy
Java代码
  1. class Bookmark {   
  2.     static constraints = {   
  3.     }   
  4.  String title;   
  5.  String description;   
  6. }   
 
Groovy去掉了属性的getter和setter方法,采用运行期和编译期动态生成,简化了编程。
 
在controllers文件夹下定义个controller类:BookmarkController.groovy
 
class BookmarkController {
 def scaffold = Bookmark
}
def scaffold = Bookmark很关键,我们需要定义scaffold属性,指定目标类。
你会惊奇的发现,寥寥几行代码,基于对bookmark的增删改查都动态生成了。这在传统的java开发领域是多么不可想象。
3、     在domain类中定义关系
比如我们创建一个User.groovy这样一个对象,然后定义bookmark的所有者,即在Bookmark.groovy中定义User属性。
 
Java代码
  1. class Bookmark {   
  2.  String title;   
  3.  String description;   
  4.     
  5.  static belongsTo = User   
  6.  User user;   
  7.     
  8. }   
belongsTo定义了该Bookmark这个类是属于User类的。
 
在User类中定义和Bookmark的一对多关系。
 
Java代码
  1. class User {   
  2.     
  3.  String name;   
  4.  String password;   
  5.  int age;   
  6.     
  7.  static hasMany = [bookmarks:Bookmark]   
  8.     
  9. }   
hasMany定义了该用户拥有多个Bookmark
4、     实体映射表,配置约束关系
 
Java代码
  1. class User {   
  2.     
  3.  static constraints = {   
  4.     name(blank:false)   
  5.  }   
  6.     
  7.  String name;   
  8.  String password;   
  9.  int age;   
  10.     
  11.  static hasMany = [bookmarks:Bookmark]   
  12.     
  13.  static mapping = {   
  14.     table 't_user'  
  15.  }   
  16.     
  17. }  
 
红色字体部分,constraints中配置了相应的约束,名字不能为空。mapping中配置了该实体映射的数据库表。
5、     配置数据源。
Grails框架中内置了HSQLDB嵌入式数据库,可以方便的开发测试。但是在实际的开发过程中,我们使用的过程中往往是Mysql,Oracle等数据库。所以我们需要配置相应的数据源。往常我们配置数据源都是配在相应的配置文件中,而Grails给我们提供了配置的文件夹conf,在该文件夹下,我们在DataSource.groovy中进行配置。
 
Java代码
  1. dataSource {   
  2. pooled = true  
  3. driverClassName = "net.sourceforge.jtds.jdbc.Driver"  
  4. username = "sa"  
  5. password = "yongtree"  
  6. }   
  7. hibernate {   
  8.     cache.use_second_level_cache=true  
  9.     cache.use_query_cache=true  
  10.     cache.provider_class='net.sf.ehcache.hibernate.EhCacheProvider'  
  11. }   
  12. // environment specific settings   
  13. environments {   
  14. development {   
  15.    dataSource {   
  16.       dbCreate = "update" // one of 'create', 'create-drop','update'   
  17.       url = "jdbc:jtds:sqlserver://localhost:1433;DataBaseName=pps;SelectMethod=cursor"  
  18.    }   
  19. }   
  20. test {   
  21.    dataSource {   
  22.       dbCreate = "update"  
  23.       url = "jdbc:jtds:sqlserver://localhost:1433;DataBaseName=pps;SelectMethod=cursor"  
  24.    }   
  25. }   
  26. production {   
  27.    dataSource {   
  28.       dbCreate = "update"  
  29.       url = "jdbc:jtds:sqlserver://localhost:1433;DataBaseName=pps;SelectMethod=cursor"  
  30.    }   
  31. }   
  32. }   
以上我们配置了基于JTDS驱动的SQL Server数据库,ORM采用的为hibernate。和domain和controller类不同的是,配置脚本文件,没有以class开头。
 
通过上面几个简单的过程,和寥寥的几行代码,已经实现了基本的增删改查的功能,是不是非常简单,这些都是原生java语言无法比拟的。同时Grails也没有特立独行,而将自己变成孤独的战士,她依然在底层利用了Java的平台优势,整合Java的资源(hibernate、spring等),加上Groovy这个动态语言的高级特性,让我们的开发不会感到太陌生,同时又提高的开发的效率,提高了生产力。作为敏捷开发下的又一支生力军,Grails值得期待。
0
1
分享到:
评论

相关推荐

    Grails Grails Grails

    **Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式...

    Eclipse下搭建Grails项目

    【Grails项目搭建详解】 Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,...不断更新插件和学习最佳实践将有助于提升开发体验。

    Grails权威指南 Grails权威指南

    《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...

    eclipse开发grails插件

    解压并导入到Eclipse中,可以进一步增强Grails的开发体验。 通过以上步骤,你可以在Eclipse中舒适地开发Grails项目,利用IDE的强大功能提升开发效率。Grails的MVC架构和自动化特性,结合Eclipse的插件支持,使得...

    grails-用户手册

    《Grails用户手册》 Grails,作为一个基于Groovy语言的开源Web应用框架,深受开发者喜爱,它简化了Java开发的复杂性,提供了强大的MVC(Model-View-Controller)架构,以及丰富的插件系统。这份用户手册将帮助你...

    Grails中文参考手册

    总之,Grails 是一个强大而灵活的 Web 开发框架,结合 Groovy 的优点,为开发者提供了高效、简洁的开发体验。通过深入学习 "Grails 中文参考手册",开发者可以充分利用 Grails 的各种特性,构建出高质量的 web 应用...

    the definitive guide to grails 2

    这使得Grails应用能够轻松地适应全球市场的需求,为不同地区的用户提供本地化的体验。 #### Ajax支持 Grails框架集成了对Ajax的支持,使得开发者可以轻松地创建异步Web应用程序。通过Ajax,Web应用可以实现无刷新...

    grails ajax

    Grails 是一个基于Groovy语言的开源Web应用框架,它构建在Spring Boot之上,提供了丰富的功能和便捷的开发体验。Ajax(Asynchronous JavaScript and XML)技术则是Web开发中用于实现页面无刷新、局部更新的一种重要...

    grails中文参考手册

    ”程序,体验Grails的快速开发能力。 3. **使用IDE** Grails支持多种集成开发环境(IDE),如IntelliJ IDEA和Eclipse,通过特定的插件可以方便地在这些IDE中进行开发,提供代码提示、自动完成等功能,提升开发效率...

    Grails入门指南 -- 针对grails1.0.4更新

    - **错误消息自定义**:根据不同的验证失败情况显示特定的错误信息,提高用户体验。 - **动态查询**:支持基于动态条件的查询操作,增加查询灵活性。 - **界面美化**:通过布局和CSS美化页面,提升用户界面的...

    grails快速开发web

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

    grails中文入门简介

    Grails是一个基于Groovy语言的全栈框架,它遵循约定优于配置的原则,并且紧密集成Spring和Hibernate等流行的Java库,简化了开发流程。Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式...

    Grails从入门指南(第二版)

    Grails是一个基于Groovy语言的开源Web应用开发框架,它简化了Java平台上的开发过程,提供了丰富的功能和高效的开发体验。 在本书中,你将学习到: 1. **Grails简介**:了解Grails的基本概念,包括其设计理念、架构...

    grails-2.4.4.zip

    《Grails 2.4.4 框架深度解析》 Grails 2.4.4 是一个基于Java的开源Web应用框架,它利用Groovy语言的强大特性,为开发者提供了一种高效、灵活的开发环境。这个压缩包“grails-2.4.4.zip”包含了完整的Grails 2.4.4...

    eclipse插件grails(groovy)

    Eclipse 插件 Grails(Groovy)是一个强大的开发工具,它使得在Eclipse环境中进行Groovy和Grails应用的开发变得更为便捷。Groovy是一种动态、面向对象的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,...

    Groovy和Grails配置方法

    ### Groovy和Grails配置方法 #### 一、Groovy与Grails简介 Groovy是一种强大的面向对象编程语言,它运行在Java平台上,并且能够直接与Java代码进行交互。Groovy支持函数式编程特性,拥有丰富的语法糖以及简洁的...

    Grails权威指南.pdf

    - **AJAX in Grails**:书中会介绍如何使用jQuery或其他库实现异步更新,提升用户体验。 - **Remote Function Calls (RFC)**:通过AJAX调用控制器的方法,实现页面部分更新。 6. **Java平台集成**: - **...

    grails login

    **Grails登录系统详解** Grails是一个基于Java的开源Web应用程序框架,它使用Groovy语言进行开发,提供了高效、简洁的编程模型。在Grails中实现用户登录功能是构建任何Web应用的基础,它确保了数据的安全性和用户...

Global site tag (gtag.js) - Google Analytics