Groovy使Spring更出色,第2部分: 在运行时改变应用程序的行为 - 编程入门网
n isModified() {
synchronized (this.lastModifiedMonitor) {
Timestamp lastUpdated = retrieveLastModifiedTime ();
return lastUpdated.after(this.lastKnownUpdate);
}
}
public String suggestedClassName() {
return StringUtils.stripFilenameExtension (this.scriptName);
}
private Timestamp retrieveLastModifiedTime() {
return (Timestamp) this.jdbcTemplate.queryForObject(
"select last_updated from groovy_scripts where script_name = ?",
new Object[]{ this.scriptName }, Timestamp.class);
}
}
Groovy使Spring更出色,第2部分: 在运行时改变应用程序的行为(6)时间:2011-08-27 IBM Scott Leberknight清单 11 中的 DatabaseScriptSource 非常简单,不过您可以让它要求的数据 库表结构更加通用。它 假设一个名为 groovy_scripts 的表有 script_name、script_source 和 last_updated 这几个列。它 支持从 groovy_scripts 表装载脚本和检查修改情况。 现在,需要教会 Spring 识别 DatabaseScriptSource。为此,必须扩展 ScriptFactoryPostProcessor 并覆盖 convertToScriptSource 方法,该方法负 责将一个脚本源代码定 位符(例如 classpath:groovierspring/GroovyPdfGenerator.groovy)转换成一 个 ScriptSource。清 单 12 显示了 ScriptFactoryPostProcessor 中的默认实现: 清单 12. ScriptFactoryPostProcessor 的 convertToScriptSource 方法
可以看到,默认的实现只处理内联和基于资源的脚本。还可以创建 ScriptFactoryPostProcessor 的 一个新的子类,并覆盖 convertToScriptSource 方法,以便使用 DatabaseScriptSource 从数据库装载 脚本,如清单 13 所示: 清单 13. CustomScriptFactoryPostProcessor 实现
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |