![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Groovy&Grails
文章平均质量分 93
SleepInDelphi
perl,c,java,delphi,ajax,biancheng
展开
-
精通 Grails: 构建您的第一个 Grails 应用程序
Java™ 程序员不需要放弃自己喜爱的语言和已有的开发基础设施就可以采纳一种新型的 Web 开发框架。在这个新推出的每月一期的 精通 Grails 系列的第一期中,Java 专家 Scott Davis 介绍了 Grails,并演示了如何构建您的第一个 Grails 应用程序。请允许我借助另一种开源 Web 开发框架 —— Ruby on Rails —— 来介绍 Grails。Rai...原创 2010-07-06 09:37:17 · 143 阅读 · 0 评论 -
Grails WEB层 内容协商
6.8 内容协商Grails已经内置支持内容协商通过使用任意HTTP Accept 报头,一种明确格式请求参数或URI映射的扩展. 配置Mime类型在你开始处理内容协商之前,你必须告诉Grails希望支持什么样的内容类型。 默认情况下,grails-app/conf/Config.groovy内使用 grails.mime.types设置来配置若干不同的内容类...原创 2010-07-02 08:23:23 · 121 阅读 · 0 评论 -
Grails WEB层 AJAX
6.7 AjaxAjax代表异步Javascript与XML,它是转向富web应用程序的驱动力. 这些类型的应用程序,通常更适合于像Ruby和 Groovy语言所写的敏捷,动态框架,Grails通过它的Ajax标签库提供支持构建Ajax应用程序. 它们完整的列表可以参看标签库参考.6.7.1 用Prototype实现AjaxGrails默认装载Protot...原创 2010-06-30 14:52:06 · 165 阅读 · 0 评论 -
Grails WEB层 过滤器
6.6 过滤器尽管Grails支持良好的细粒度控制器(controller),但只对少数控制器(controller)的应用时非常有用,当管理大型应用时就会变得很困难。另一方面,过滤器能横跨一群控制器(controller),一个URI空间或一个具体的操作(action)。过滤器对插件更容易并能保证彻底的分离主要控制器(controller)逻辑,有利于所有像安全,日志等等这样的横切...原创 2010-06-30 14:51:49 · 186 阅读 · 0 评论 -
Grails WEB层 Web流(Flow)
6.5 Web流(Flow)概述Grails基于Spring Web Flow项目来支持创建Web流(Flow)。一个Web流(Flow)就是一个会话,它跨越多个请求并保持着流(Flow)作用域的状态。 一个Web流(Flow)也定义了开始和结束状态。 . Web流(Flow)无需HTTP session,但作为替代,它将状态存储在序列化表单中,然后通过Grail...原创 2010-06-30 08:23:47 · 230 阅读 · 0 评论 -
Grails WEB层 URL映射
6.4 URL映射到目前为止,贯穿整个文档用于URLs的规约默认为 /controller/action/id . 然而,这个规约不是硬性的写入Grails中,实际上,它是通过一个位于 grails-app/conf/UrlMappings.groovy 的URL映射类所控制.UrlMappings类包含一个名为mappings单一属性,并被赋予一个代码块: ...原创 2010-06-30 08:23:32 · 204 阅读 · 0 评论 -
Grails WEB层 标签库
6.3 标签库像 Java Server Pages JSP) 一样,GSP支持定制tag库的概念.不同于JSP,Grails标签库机制是简单的,优雅的,在运行时完全可重载的.创建一个标签库是相当简单的,创建一个以规约TagLib结尾的一个Groovy类,并把它放置于grails-app/taglib目录里: class SimpleTagLib {}...原创 2010-06-30 08:23:17 · 144 阅读 · 0 评论 -
Grails WEB层 Groovy Server Pages
6.2 Groovy Server PagesGroovy Servers Pages (或者简写为 GSP)Grails的视图技术。它被设计成像ASP和JSP这样被使用者熟悉的技术,但更加灵活和直观.GSP存在于Grails的grails-app/views目录中,他们通常会自动渲染(通过规约),或者像这样通过render方法: render(view...原创 2010-06-30 08:21:32 · 170 阅读 · 0 评论 -
Grails WEB层 控制器
6.1 控制器(Controllers)一个控制器(Controllers)处理请求并创建或准备响应 ,是请求范围。 换句话说,会为每个 request 创建一个新的实体。 一个控制器(Controller)可以生成响应或委托给视图。 创建一个控制器(Controller)只需要创建一个以 Controller 结尾的类。并放置于 grails-app/controlle...原创 2010-06-30 08:20:52 · 205 阅读 · 0 评论 -
Grails 验证
验证Grails的验证功能基于Spring's Validator API和数据绑定功能。不过,Grails利用这些特性,通过它的"constraints(约束)"机制, 提供了一个统一的定义验证约束方式。Grails中的Constraints(约束)是用声明式指定效验规则的方式。常用于domain 类,不过 URL Mappings 和Command 对象同样支...原创 2010-07-02 08:23:38 · 202 阅读 · 0 评论 -
Grails Service 层
Service 层除了 Web 层 之外, Grails 还定义了service 层的概念。Grails 团队不赞成在controllers中嵌入核心的应用程序逻辑,因为这样并没有提升重用和清楚的关注点分离。Grails中的Services在应用程序中被视为放置多数逻辑的地方 。从controllers脱离,负责处理通过重定向的请求流等等。 创建Serv...原创 2010-07-02 08:23:51 · 209 阅读 · 0 评论 -
Grails 测试
测试自动化测试被看成是Grails中一个重要部分,以 Groovy Tests 为基础执行测试。因此,Grails提供了许多方法,使不管是简单的单元测试,还是高难度的方法测试都能更容易执行。这个章节详细描述了Grails给出的各种不同的测试方法。你要明白的第一件事是,所有create-*命令,实际上Grails最后都会自动帮它们创建集成好的全部测试实例。比如你运行下方的c...原创 2010-07-02 08:24:03 · 151 阅读 · 0 评论 -
Grails 部署
部署Grails可以使用很多种方式来部署,每一种都有它的缺点和优点. "grails run-app"现在,你已经非常属性这个方式 , 因为它是在部署阶段运行应用程序非常普通的方法. 内置的Jetty服务器被启动并加载来自开发时的应用程序源代码, 因此,允许获取应用程序文件的改变. 这种方式在产品部署时不被推荐,因为性能非常差。 检查和加载改变在服务器端是...原创 2010-07-06 09:36:55 · 193 阅读 · 0 评论 -
Grails 脚手架
脚手架 根据指定的领域类,脚手架为你自动生成一个领域相关的完整应用,包括: 必要的 views 控制器的创建/读取/更新/删除(CRUD)操作 启动脚手架 让脚手架生效的最简单方法是通过设置 scaffold 属性。 以领域类 Book 为例,你需要在其控制器中设置 scaffold 属性为true就可以了,代码如下: cl...原创 2010-07-05 08:20:01 · 154 阅读 · 0 评论 -
Grails Grails 与 Hibernate
Grails 与 Hibernate如果 GORM (Grails Object Relational Mapping)没有你想象的那么足够灵活,作为选择,你可以使用Hibernate映射你的domain类. 要做到这点,需要在你项目的grails-app/conf/hibernate目录创建一个hibernate.cfg.xml文件并为你的domain类对应HBM映射文件 ...原创 2010-07-05 08:19:50 · 437 阅读 · 0 评论 -
Grails Grails和 Spring
Grails和 Spring这一节适合于高级用户, Spring 框架,和想通过 插件开发来配置Grails的开发人员。14.1 Grails内部实现实际上Grails是变相的 Spring MVC 应用. Spring MVC是Spring框架内置的 MVC web开发框架.虽然从易用性来说Spring MVC比不上Struts这样的框架,但它的设计和架...原创 2010-07-05 08:19:39 · 192 阅读 · 0 评论 -
Grails Web服务
Web服务Web服务就是让你的web应用提供一套web API,通常用SOAP 或 REST来实现。 .1 RESTREST就本身而言不是一种技术,而是一种架构模式。is not really a technology in itself, but more an architectural pattern. REST非常简单,以普通XML或JSON作为通信机...原创 2010-07-05 08:19:27 · 131 阅读 · 0 评论 -
Grails 插件
插件Grails提供了许多扩展点来满足你的扩展,包括从命令行接口到运行时配置引擎。以下章节详细说明了该如何着手来做这些扩展。12.1 创建和安装插件创建插件创建一个Grails插件,只需要运行如下命令即可: grails create-plugin [PLUGIN NAME]根据你输入的名字将产生一插件工程。比如你输入 grails creat...原创 2010-07-05 08:19:15 · 195 阅读 · 0 评论 -
Grails 安全性
安全性Grails差不多和Java Servlets一样可靠。然而由于JVM运行代码的特性,Java servlets对一般的缓冲区溢出和恶意URL使用是极为安全和免疫的。Web安全问题通常由于开发人员的无知过错造成的,Grails提供了一些帮助,可以避免常出现的错误,使安全应用更加容易编写。 Grails可以自动做什么Grails拥有一些默认的内置安全...原创 2010-07-05 08:18:58 · 214 阅读 · 0 评论 -
Grails 国际化
国际化通过潜在支持Spring MVC国际化标准,Grails支持国际化标准(i18n)开箱即用。在Grails中,你能够根据用户属地定制该地区语言的文字。引用Java语言中的 Locale 文档定义:Locale 对象描述了特定的地理、政治和文化地区。需要 Locale来执行其任务的操作称为本地化操作,它使用 Locale为用户量身定制信息。例如,显示一个数值就...原创 2010-07-02 11:58:19 · 123 阅读 · 0 评论 -
Grails 对象关联映射 (GORM) 二
Groovy 的多行字符串对HQL查询无效 分页和排序使用HQL查询的时候你也可以进行分页和排序。要做的只是简单指定分页和排序参数作为一个散列在方法的末尾调用: def results = Book.findAll("from Book as b where b.title like 'Lord of the%' order by b.title ...原创 2010-06-29 10:29:39 · 166 阅读 · 0 评论 -
Grails 对象关联映射 (GORM) 一
Domain 类是任何商业应用的核心。 他们保存事务处理的状态,也处理预期的行为。 他们通过关联联系在一起, one-to-one 或 one-to-many。GORM 是 Grails对象关联映射 (GORM)的实现。在底层,它使用 Hibernate 3 (一个非常流行和灵活的开源ORM解决方案),但是因为Groovy天生的动态性,实际上,对动态类型和静态类型两者都支持,由于Gra...原创 2010-06-29 10:29:21 · 462 阅读 · 0 评论 -
实战 Groovy: 关于 MOP 和迷你语言
将耳朵贴到地上仔细听 —— MOP 正在前进!了解一下元对象协议(Meta Object Protocol,MOP)吧,这是一种将应用程序、语言和应用程序构建为 语言的翻新方法。在最近的一次采访中,Groovy 项目经理 Guillaume Laforge 提到,他最喜欢的 Groovy 特性是它实现了元对象协议(Meta Object Protocol) 或称 MOP。在运行时向一个...原创 2010-07-10 11:06:19 · 220 阅读 · 0 评论 -
实战 Groovy: 用 Groovy 更迅速地对 Java 代码进行单元测试
不久以前,developerWorks 的作者 Andrew Glover 撰写了一篇介绍 Groovy 的文章,该文章是 alt.lang.jre 系列的一部分,而 Groovy 是一个新提议的用于 Java 平台的标准语言。读者对这篇文章的反应非常热烈,所以我们决定开办这个专栏,提供使用这项热门新技术的实用指导。本文是第一期,将介绍使用 Groovy 和 JUnit 对 Java 代码...原创 2010-07-10 11:06:03 · 373 阅读 · 0 评论 -
实战 Groovy: 构建和解析 XML
通过本文,您将了解使用 Groovy 分解 XML 是多么地容易。在本期的 实战 Groovy 中,作者 Scott Davis 演示了无论您是使用 MarkupBuilder 和StreamingMarkupBuilder 创建 XML,还是使用 XmlParser 和 XmlSlurper 解析 XML,Groovy 都提供了一系列用于处理这类流行数据格式的工具。XML 似乎已经由...原创 2010-07-10 11:05:47 · 182 阅读 · 0 评论 -
实战 Groovy: 用 Groovy 进行 JDBC 编程
这个月,随着 Andrew Glover 向您演示如何用 GroovySql 构建简单的数据报告应用程序,您对 Groovy 的实用知识会更进一步。GroovySql 结合利用闭包(closure)和迭代器(iterator),把资源管理的负担转移到 Groovy 框架本身,从而简化了 Java 数据库连通性(Java Database Connectivity,JDBC)的编程。在 ...原创 2010-07-10 11:05:31 · 290 阅读 · 0 评论 -
实战 Groovy: 美妙的操作符
Java™ 取消了操作符重载,但是新兴的 Groovy 又使之浮出水面。在实战 Groovy 定期连载的“Groovy 每日应用”的最后一期中,请随着 Andrew Glover 介绍的三类可重载操作符,重新寻回自己多年来失去的东西。许多以前使用 C++ 的开发人员会怀念操作符重载,例如 + 和 -。虽然它们很方便,但是被覆盖的操作符的多态实质会造成混淆,所以操作符重载在 Java 语...原创 2010-07-10 11:05:11 · 143 阅读 · 0 评论 -
实战 Groovy: 使用 Groovy 模板进行 MVC 编程
视图是 MVC 编程的一个重要部分,而 MVC 编程本身又是企业应用程序开发的一个重要组件。在这篇实战 Groovy 的文章中,Andrew Glover 向您介绍了 Groovy 的模板引擎框架是如何用来简化视图编程的,并如何使您的代码更加经久容易维护。在最近的 实战 Groovy 系列中,我们已经介绍过 Groovy 是构建报表统计程序的一个非常好的工具。我们使用了一个校验和报表统...原创 2010-07-10 11:04:52 · 500 阅读 · 0 评论 -
实战 Groovy: 用 Groovy 减少代码冗余
Groovy 简洁的语法将开发人员从那种需要进行代码编译但却无助于表达 什么 是程序真正想要实现的典型的 Java™ 结构中解放了出来。在实战 Groovy 系列的这一复兴篇中,Groovy 开发人员兼特约专栏作家 J. Scott Hickey 带您进行一系列对常规 Java 代码和 Groovy 代码的比较,展示这门令人兴奋的语言如何将您解放出来,让您能够专注于编码的重要方面。通常...原创 2010-07-10 11:04:34 · 237 阅读 · 0 评论 -
实战 Groovy: Groovy:Java 程序员的 DSL
Groovy 专家 Scott Davis 将重新开始撰写 实战 Groovy 系列文章,该系列文章于 2006 年停止编写。作为开篇文章,本文将介绍 Groovy 最近的发展以及 Groovy 当前的状态。然后了解大约 从 2009 年开始,使用 Groovy 是多么轻松。Andrew Glover 于 2004 年开始为 developerWorks 撰写关于 Groovy 的文章...原创 2010-07-10 11:04:13 · 168 阅读 · 0 评论 -
实战 Groovy: 用 curry 过的闭包进行函数式编程
在 Groovy 中处处都是闭包,Groovy 闭包惟一的问题是:当每天都使用它们的时候,看起来就有点平淡了。在本文中,客座作者 Ken Barclay 和 John Savage 介绍了如何对标准的闭包(例如闭包复合和 Visitor 设计模式)进行 curry 处理。curry() 方法是由 Haskell Curry 发明的,在 JSR 标准发布之前就已经在 Groovy 语言中了。...原创 2010-07-10 11:06:35 · 257 阅读 · 0 评论 -
实战 Groovy: Groovy 的腾飞
随着 Groovy JSR-1(及其后续发行版本)的发布,Groovy 语法的变化已经规范化 —— 这意味着如果以前没有对此加以注意,那么现在是开始注意它的时候了。这个月,Groovy 的常驻实践者 Andrew Glover 将介绍 Groovy 语法最重要的变化,以及在经典 Groovy 中找不到的一个方便特性。从我在 alt.lang.jre 的系列文章“Feeling Groo...原创 2010-07-10 11:06:46 · 137 阅读 · 0 评论 -
实战 Groovy: 在 Java 应用程序中加一些 Groovy 进来
您有没有想过在自己相对复杂的 Java 程序中嵌入 Groovy 简单的、易于编写的脚本呢?在这一期 实战 Groovy 系列文章中,Andrew Glover 将介绍把 Groovy 集成到 Java 代码中的多种方法,并解释在什么地方、什么时候适合这么做。如果您一直在阅读这个系列,那么您应该已经看到有各种各样使用 Groovy 的有趣方式,Groovy 的主要优势之一就是它的生产力...原创 2010-07-10 11:06:57 · 259 阅读 · 0 评论 -
Grails 命令行
Grails的命令行系统是构建于 Gant 之上,Gant就是使用Groovy对 Apache Ant 进行了简单的包装。然而,Grails通过约定规则以及grails命令的使用带来了一些改进。当你键入如下内容时: grails [命令名称]为了Gant脚本的执行,Grails会在下列目录中做一次搜索: USER_HOME/.grails/sc...原创 2010-06-29 10:29:05 · 460 阅读 · 0 评论 -
Grails 配置
也许在这里谈论配置对于一个“约定优于配置”的框架来说,这可能比较奇怪,但这些配置通常都是一次性,我们最好还是先了解他们的大概。由于Grails提供了默认设置,你确实可以在不做任何配置的情况下进行开发和应用。Grails也内嵌了一个Web容器和一个称为HSQLDB的内存数据库,这意味着你甚至都不用安装数据库了。不过,在将来某些情况下你还是会想要安装一个真正的数据库的,我们将在随后的一...原创 2010-06-29 10:28:41 · 212 阅读 · 0 评论 -
Grails 入门
1 下载和安装让Grails运行起来的第一步是安装发行包。请按照如下步骤: 下载 Grails的二进制发行包并解压到你指定的目录下 新增 GRAILS_HOME 环境变量并指向你解压发行包时选择的目录 Unix/Linux系统上通常在你的profile文件中添加 export GRAILS_HOME=/path/to/grails 来设置环境变...原创 2010-06-29 10:28:21 · 189 阅读 · 0 评论 -
Grails 简介
当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。因此我们要以一种新的思维方式来重新思考Web开发,Rails、Django和TurboGears这样的动态框架给我们铺平了道路。Grails建立在这些概念之上,它极大地降低了在Java平台上建立...原创 2010-06-29 10:28:06 · 128 阅读 · 0 评论 -
实战 Groovy: 用 Groovy 打造服务器端
Groovlet 和 GroovyServer Pages(GSP)框架都是建立在 Java Servlet API 基础之上。不过,与 Strut 和 JSF 不同,Groovy 的服务器端实现不意味着适用于所有情况。相反,它提供了一种快速而又方便地开发服务器端应用程序的简化方法。下面请跟随 Groovy 的鼓吹者 Andrew Glover,听听他如何介绍这些框架,并展示它们的应用。...原创 2010-07-10 11:07:39 · 333 阅读 · 0 评论 -
实战 Groovy: 用 Groovy 生成器作标记
Groovy 生成器让您能够利用诸如 Swing 这样的框架来模拟标记语言(如 XML、HTML、Ant) 任务以及 GUI。它们对于快速原型化非常有 用,并且正像 Andrew Glover 这个月在“实战 Groovy”专栏中向您展示的那样,当您马上需要可消费的标记时,它们是数据绑定框架的一种便利的替代方案。几个月前,当我最初撰写有关 实战 Groovy: 用 Groovy 进行 ...原创 2010-07-10 11:07:29 · 242 阅读 · 0 评论 -
实战 Groovy: for each 剖析
在这一期的 实战 Groovy 中,Scott Davis 提出了一组非常好的遍历方法,这些方法可以遍历数组、列表、文件、URL 以及很多其它内容。最令人印象深刻的是,Groovy 提供了一种一致的机制来遍历所有这些集合和其它内容。迭代是编程的基础。您经常会遇到需要进行逐项遍历的内容,比如 List、File 和 JDBC ResultSet。Java 语言几乎总是提供了某种方法帮助您逐...原创 2010-07-10 11:07:19 · 487 阅读 · 0 评论