抛出自定义事件
显然,现在已经了解相关的原理,您可以随意添加自己的事件了。如果确实需要自定义 $GRAILS_HOME/scripts 中的脚本(我们随后将进行此操作以抛出自定义事件),我建议将它们复制到项目内的脚本目录中。这意味着自定义脚本会和其他内容一起签入到源控件中。Grails 询问运行哪个版本的脚本 — $GRAILS_HOME 或本地脚本目录中的脚本。
将 $GRAILS_HOME/scripts/Clean.groovy 复制到本地脚本目录,并在 CleanEnd 事件后添加以下事件:
event("TestEvent", [new Date(), "Some Custom Value"])
第一个参数是事件的名称,第二个参数是要返回的项目列表。在本例中,返回一个当前日期戳和一条自定义消息。
将清单 8 中的闭包添加到 scripts/Events.groovy:
清单 8. 捕获自定义事件
eventTestEvent = {timestamp, msg ->
println "### ${msg} occurred at ${timestamp}"
}
println "### ${msg} occurred at ${timestamp}"
}
输入 grails clean 并选择本地脚本版本后,应该看到如下内容:
### Some Custom Value occurred at Wed Jul 09 08:27:04 MDT 2008