Groovy使Spring更出色,第2部分: 在运行时改变应用程序的行为 - 编程入门网
new DatabaseScriptSource(
scriptSourceLocator.substring (DATABASE_SCRIPT_PREFIX.length()),
dataSource);
}
else {
return new ResourceScriptSource(
resourceLoader.getResource (scriptSourceLocator));
}
}
}
Groovy使Spring更出色,第2部分: 在运行时改变应用程序的行为(7)时间:2011-08-27 IBM Scott Leberknight以上清单中的 CustomScriptFactoryPostProcessor 类似于 ScriptFactoryPostProcessor,但是, 如果脚本源代码定位符以 database: 开始(例如 database:groovierspring/GroovyPdfGenerator.groovy),它还可以使用基于数 据库的脚本。理想情况 下,这种机制将更加灵活。但是,就现在而言,您已经有了在数据库中存储 Groovy 脚本所需的东西。 最后要做的就是配置 pdfGenerator bean,以便从数据库读取它。首先,需要 使用 清单 13 中显示 的 CustomScriptFactoryPostProcessor 定义一个 scriptFactoryPostProcessor bean。然后,使用数 据库脚本源代码定位符定义 pdfGenerator bean。既可以使用单纯的 <bean/> 语法,也可以使用 更清晰的 <lang:groovy> 语法来定义 pdfGenerator bean。当使用 <lang:groovy> 时, Spring 检查在名为 scriptFactoryPostProcessor 的应用程序上下文中是否有一 个 ScriptFactoryPostProcessor bean,如果没有,则自动创建一个。如果 scriptFactoryPostProcessor 已经被定义,则 Spring 就使用这个 bean,这样您就可以替换自己定制的实现。 清单 14 显示了新的配 置: 清单 14. 数据库 pdfGenerator bean 配置
清单 14 中的代码并不比您在前面看到的代码复杂多少。 scriptFactoryPostProcessor bean 要求注 入一个 DataSource,所以还要定义 dataSource bean。除此之外,惟一不同的地 方是基于 CLASSPATH 的脚本变成了数据库中的脚本。如果您更倾向于使用 Grails Bean Builder,那 么可以轻松地用它来配 置数据源和定制的 ScriptFactoryPostProcessor bean。 至此,您可以从数据库装载 Groovy 脚本,并在数据库中的脚本被更改之后刷 新它们,这使得 Spring 原本已经灵活的 Groovy 支持变得更加灵活和动态。您还看到了如何添加 自己的 ScriptSource 实现,以允许从选择的任何位置装载脚本。 Groovy 脚本变坏 也许每个人都同意应该彻底地对应用程序进行测试,至于如何测试,大家却各 执己见。例如,100% 的代码覆盖是必需的,还是可选的,抑或纯粹是浪费时间?无论您个人的观点如 何,当您突然有能力将 变化部署到一个正在运行的生产系统中,并且让那些变化立即生效时(例如用 Spring 的动态语言支持 就可以做到),测试就变得非常重要。 如果您决定使用 refreshable beans 特性,那么需要一个可靠的策略来确保 新的代码能够正确地、 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |