精通Grails: Grails 事件模型 - 编程入门网
精通Grails: Grails 事件模型时间:2011-07-25 IBM Scott Davis对于事件驱动的反应性开发,构建 Web 站点是一门学问。您的应用程序是不是很空闲,焦虑地等待用 户发送请求,然后它传回响应,再返回休眠状态,直到下次调用。除了传统的 Web 生命周期的 HTTP 请 求和响应,Grails 还提供了大量自定义接触点,您可以在此进入事件模型并提供自己的行为。 在本文中,您将发现构建过程中会抛出很多事件。需要自定义地启动和关闭应用程序。最后,探讨 Grails 域类的生命周期事件。 构建事件 开发 Grails 的第一步是输入 grails create-app。最后输入 grails run-app 或 grails war。这期 间输入的所有命令和内容都会在过程的关键点抛出事件。 查看 $GRAILS_HOME/scripts 目录。此目录中的文件是 Gant 脚本,对应输入的命令。例如,输入 grails clean 时,调用 Clean.groovy。 在文本编辑器中打开 Clean.groovy。首先看到的目标是 default 目标,如清单 1 所示: 清单 1. Clean.groovy 中的 default 目标
可见,它的内容并不多。首先运行 clean 目标,然后运行 cleanTestReports 目标。调用堆栈后,看 一下 clean 目标,如清单 2 所示: 清单 2. Clean.groovy 中的 clean 目标
如果需要自定义 clean 命令的行为,可以在此添加自己的代码。不过,使用此方法的问题是:每次升 级 Grails 时都必须迁移自定义内容。而且从一台计算机移动到另一台计算机时,您的构建会更容易出错 。(Grails 安装文件很少签入版本控制 — 只检签入用程序代码)。为了避免可怕的 “but it works on my box” 综合症,我倾向于将这些类型的自定义内容放在项目中。这确保来自源控件的所有新签出都 包含成功构建所需的自定义内容。如果使用持续集成服务器(比如 CruiseControl),也有助于保持一致 性。 注意,在 clean 目标期间会抛出几个事件。CleanStart 在过程开始之前发生,随后发生 CleanEnd。 您可以在项目中引入这些事件,将自定义代码与项目放在一起,不要改动 Grails 安装文件。您只需要创 建一个监听器。 在项目的脚本目录中创建一个名为 Events.groovy 的文件。添加清单 3 所示的代码: 清单 3. 向 Events.groovy 添加事件监听器
精通Grails: Grails 事件模型(2)时间:2011-07-25 IBM Scott Davis如果输入 grails clean,应该看到类似于清单 4 的输出: 清单 4. 显示新注释的控制台输出
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |