Groovy使Spring更出色,第2部分: 在运行时改变应用程序的行为 - 编程入门网
value="Refreshable Groovy Bookstore"/>
</lang:groovy>
<lang:groovy id="invoiceEmailer"
script- source="classpath:groovierspring/GroovyInvoiceEmailer.groovy"
refresh-check-delay="-1"/>
在清单 4 中可以看到,默认的刷新检查延时是 20 秒。但是,我已经将 pdfGenerator bean 的刷新 检查延时配置为 60 秒,并且完全关闭了 invoiceEmailer bean 上的刷新检查。 Groovy使Spring更出色,第2部分: 在运行时改变应用程序的行为(3)时间:2011-08-27 IBM Scott Leberknight使用 Grails Bean Builder 配置可刷新 Groovy bean 在 第 1 部分,您看到了如何使用 Grails Bean Builder 通过编程的方式定 义 Spring bean。如果 使用 Bean Builder,可以比较轻松地为 bean 添加自动刷新 — 不过这样一来, 就会更多地暴露 Spring 内部,因为 Bean Builder 和 <lang:groovy> 语法糖不同。清单 5 展示了如何为所有脚 本化 bean 添加一个默认的刷新检查,以及如何为单个 bean 设置刷新延时: 清单 5. 使用 Grails Bean Builder 配置可刷新 Groovy bean
清单 5 中的 Bean Builder 配置在逻辑上等同于 清单 4 中的 pdfGenerator bean 的配置。您使用 ScriptFactoryPostProcessor bean 的 defaultRefreshCheckDelay 属性为所有 脚本化 bean 设置了一 个默认的刷新检查延时。在使用 Bean Builder 时,若要为单个的 bean 设置刷 新检查延时,必须在底 层的 Spring bean 定义上设置一个属性。如果使用 <lang:groovy> 基于 XML 的配置时,Spring 会负责底层的细节,而如果使用 Bean Builder,则需要您自己做这件事。注意, 为了在 bean 定义上设 置属性,还需要为 pdfGenerator bean 上的闭包声明一个 bean 参数。 定制 Groovy bean 您已经看到了如何使用 refreshable beans 特性使 Groovy bean 在运行时自 动更新,并使得应用程 序在运行时更加动态。为了使 Groovy bean 更加灵活,Spring 的 Groovy 支持 还提供了另一种方式: 定制。通过定制,可以将定制的逻辑注入到 Groovy bean 创建过程中。通过 GroovyObjectCustomizer 接口(清单 6 所示),可以在新创建的 GroovyObject 上执行定制逻辑: 清单 6. GroovyObjectCustomizer 接口
GroovyObjectCustomizer 是一个回调,Spring 在创建一个 Groovy bean 之 后会调用它。可以对一 个 Groovy bean 应用附加的逻辑,或者执行元编程,例如替换对象的元类。清单 7 展示了一个实现, 该实现输出执行一个 Groovy bean 上的某个方法所花的时间: 清单 7. 性能日志记录 GroovyObjectCustomizer
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |