Groovy 使 Spring 更出色,第 2 部分: 在运行时改变应用程序的行为
2009-11-19 00:00:00 来源:WEB开发网清单 7 中的 PerformanceLoggingCustomizer 替换 GroovyObject 的元类,并覆盖 invokeMethod,以便添加性能计时(performance-timing)逻辑。接下来,需要配置定制程序,以便将它应用到一个或多个 Groovy bean 上。清单 8 展示了如何使用 <lang:groovy> 中的 customizer-ref 属性将一个定制程序添加到一个已有的 Groovy bean 中:
清单 8. 配置一个 Groovy 对象定制程序 <bean id="performanceLoggingCustomizer"
class="groovierspring.PerformanceLoggingCustomizer"/>
<lang:groovy id="pdfGenerator"
refresh-check-delay="60000"
script-source="classpath:groovierspring/GroovyPdfGenerator.groovy"
customizer-ref="performanceLoggingCustomizer">
<lang:property name="companyName" value="Customized Groovy Bookstore"/>
</lang:groovy>
现在,当 GroovyPdfGenerator 中的任何方法被调用时,您将在标准输出中看到如下所示的输出。(如果您正考虑使用一个日志记录框架会更好,那么您的想法是对的!)
pdfFor took 18 millis on groovierspring.GroovyPdfGenerator@f491a6
为 Groovy bean 添加定制很简单;较难的部分是实现实际的定制逻辑 — 也就是说,当 Groovy bean 被创建时,您想对它们做什么。您看到了使用 <lang:groovy> 和它的 customizer-ref 属性的配置。如果您更喜欢使用 Grails Bean Builder 来构建 Spring bean,那么也很简单。清单 9 展示了如何添加 peformanceLoggingCustomizer bean:
更多精彩
赞助商链接