快速业务通道

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号