Grails 1.1 钩子事件 - 定义事件处理器

事件处理器是定义在称为 _Events.groovy 的脚本文件中。

Grails会在以下位置搜索这些脚本:• USER_HOME/.grails/scripts - 用户特定的事件处理器 • PROJECT_HOME/scripts - 应用程序特定的事件处理器 • PLUGINS_HOME/*/scripts - 插件特定的事件处理器 • GLOBAL_PLUGINS_HOME/*/scripts - 由全局插件提供的事件处理器无论事件在何时被激发, 所有 已经注册到该事件的处理器都会被执行。

需要注意的是处理器的注册工作会由Grails自动进行,你只需要在相关的 _Events.groovy 文件中声明即可。

在Grails 1.0.4版本之前,脚本文件被命名为 Events.groovy,它没有前下划线。

事件处理器是分块定义在 _Events.groovy 文件中,使用“event”作为名称的开头部分。

下边的例子可以被放在你的 /scripts 目录中来展示这个特性:eventCreatedArtefact = { type, name -> println "Created $type $name" } eventStatusUpdate = { msg -> println msg } eventStatusFinal = { msg -> println msg }你可以看到这儿有三个处理器分别是:eventCreatedArtefact、eventStatusUpdate和eventStatusFinal。

Grails提供了一些标准的事件,它们在命令行参考指南中有描述。例如compile命令会激发下列事件:• CompileStart - 当编译过程开始时,针对这几种类型的编译——源文件和测试文件 • CompileEnd - 当编译过程完成时,针对这几种类型的编译——源文件和测试文件