快速业务通道

Groovy使Spring更出色,第1部分: 集成的基础知识 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
单 13 中的代码在逻辑上等同于 清单 6 和 清单 9 中的 XML 配置。当然 ,清单 13 是使用 Groovy 代码来定义 bean。为了定义 pdfGenerator bean,清单 13 将类型指定 为 GroovyScriptFactory。第二个参数指定脚本源代码的位置,和前面一样,在闭包 中设置 companyName 属性。它还定义一个名为 scriptFactoryPostProcessor 的 bean,其类型为 ScriptFactoryPostProcessor,它将用实际的用脚本编写的对象替换工厂 bean。

哪种配置选项最好?

至此,您已经看到配置基于 Groovy 的 bean(无论是已编译的还是用脚本编 写的)的几种不同的方 式。如果您仅是使用 Groovy 替代 Java 作为应用程序的主要语言,那么配置这 些 bean 与配置基于 Java 的 bean 没有区别。对于已编译的 Groovy 类,可以使用 XML 或基于注释 的配置进行配置。

对于用脚本编写的 Groovy 对象,虽然可以用几种不同的方式来配置它们,但 是 <lang:groovy> 选项却是最简洁的方式,与使用 GroovyScriptFactory 和 ScriptFactoryPostProcessor 或者使用 <lang:inline-script> 进行配置 相比,这种选项能够最 清晰地表现意图。

您还看到了 Grails Bean Builder,它以完全不同的方式创建大多数 Spring 应用程序使用的 Spring 应用程序上下文。如果要用 Groovy 创建所有的 bean,并且要能够添加 逻辑到 bean 构建过程 中,Bean Builder 必须很好地符合要求。另一方面,使用 Bean Builder 定义 Groovy bean 时,需要 使用 GroovyScriptFactory 和 ScriptFactoryPostProcessor 来定义 bean。

Groovy使Spring更出色,第1部分: 集成的基础知识(7)

时间:2011-08-27 IBM Scott Leberknight

使用 Groovy bean

bean 配置和可用的几个选项是集成 Groovy 和 Spring 的难点(但是如您所 见,这并不是很难)。实际上,在 Spring 应用程序中使用 Groovy bean 很容易 。Spring 的动态语言支持使得 bean 的使用对于应用程序**码是完全透明的,应 用程序**码不需要知道也不需要关心实现细节。您可以像平常开发 Spring 应用 程序一样编写应用程序**码,并且可以利用 Spring 提供的所有特性,例如依赖 项注入、AOP 和与第三方框架集成。

清单 14 展示了一个简单的 Groovy 脚本,它从 XML 配置文件创建一个 Spring 应用程序上下文,获取 PDF 生成器 bean,并使用它生成一个****的 PDF 版本:

清单 14. 在脚本中使用 Groovy bean

def context = new ClassPathXmlApplicationContext

("applicationContext.xml")def generator = 

context.getBean("pdfGenerator")Invoice invoice = new 

Invoice(orderNumber: "12345", orderDate: new Date())

invoice.lineItems = [    new LineItem(quantity: 1, description: 

''Groovy in Action (ebook)'', price: 22.00),    new LineItem

(quantity: 1, description: ''Programming Erlang'', price: 45.00),    

new LineItem(quantity: 2, description: ''iText in Action (ebook)'', 

price: 22.00)]byte[] invoicePdf = generator.pdfFor(invoice)

FileOutputStream file = new FileOutputStream("Invoice-

${invoice.orderNumber}.pdf")file.withStream {    

file.write(invoicePdf)}println "Generated invoice 

$invoice.orderNumber"

Groovy使Spring更出色,第1部分: 集成的基础知识(8)

时间:2011-08-27 IBM Scott Leberknight

在 清单 14 中,大部分**码用于创建 Spring ApplicationContext,创建发 票并将它写出到一个文件。使用 pdfGenerator bean 生成****仅需一行**码。在 通常的 Spring 应用程序中,在应用程序启动时引导一次

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号