事件处理器是定义在称为 _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 - 当编译过程完成时,针对这几种类型的编译——源文件和测试文件