Groovy使Spring更出色,第1部分: 集成的基础知识 - 编程入门网
中使用 Groovy bean 很容易,就像使用 Java bean 一样。(但是,在后面 可以看到,对于如何配 置它们,则有很多选项)。首先,需要定义一个接口作为 Groovy bean 必须遵从 的约定。虽然不是非得 定义接口不可,但是大多数 Spring 应用程序会通过接口(而不是具体实现类) 来定义应用程序组件之 间的交互和依赖项,以促进松散耦合并为测试提供便利。
例如,假设有一 个定义如何从 Invoice 对象生成 PDF 的接口。如清单 1 所示: 清单 1. PdfGenerator 接口 public interface PdfGenerator { byte[] pdfFor(Invoice invoice); } PdfGenerator 接口被用作 Groovy 实现类必须遵从的约定。这很容易 ,因为 Groovy 类可以 像 Java 类那样实现接口。清单 2 显示了 PdfGenerator 的 Groovy 实现,它使 用 iText 库(参见 参 考资料)完成实际的 PDF 生成;它返回一个包含 PDF 内容的字节数组: 清单 2. GroovyPdfGenerator class GroovyPdfGenerator implements PdfGenerator { String companyName public byte[] pdfFor(Invoice invoice) { Document document = new Document(PageSize.LETTER) ByteArrayOutputStream output = new ByteArrayOutputStream() PdfWriter.getInstance(document, output) document.open() Font headerFont = new Font(family: Font.HELVETICA, size: 24.0, style: Font.ITALIC) document.add(new Paragraph("$companyName", headerFont)) document.add(new Paragraph("Invoice $invoice.orderNumber")) document.add(new Paragraph("Total amount: \$ ${invoice.total}")) document.close() output.toByteArray() } } GroovyPdfGenerator 已准备就绪。它定义了一个名为 companyName 的 string 属性,该属性在生成 的 PDF 发票上与订单号和总额一起使用。此时,可以将 GroovyPdfGenerator 集 成到 Spring 应用程序 中。使用 Java 语言编写的 bean 必须编译成 .class 文件,但是在使用基于 Groovy 的 bean 时,则 有几种选择: 将 Groovy 类编译成普通的 Java 类文件 在一个 .groovy 文件中定义 Groovy 类或脚本 在 Spring 配置文件中以内联方式编写 Groovy 脚本 可以选择不同的方法在 Spring 应用程序上下文中定义和配置 Groovy bean, 这取决于 Groovy bean 采用的选项。接下来,我们将探讨每一种配置选项。 Groovy使Spring更出色,第1部分: 集成的基础知识(3)时间:2011-08-27 IBM Scott LeberknightGroovy bean 配置 通常,可以使用 XML 配置用 Java 代码编写的 Spring bean,或者 — 从 Spring 2.5(参见 参考 资料)开始 — 使用注释进行配置,后者可以显著减少 XML 配置。当配置 Groovy bean 时,可用的选 项取决于是使用编译的 Groovy 类还是 .groovy 文件中定义的 Groovy 类。需要 记住的是,您可以使用 Groovy 实现 bean,然后可以像 Java 编程那样编译它们;或者在 .groovy 文件 中以类似脚本的形式实 现它们,然后由 Spring 负责在创建应用程序上下文时编译它们。 如果选择在 .groovy 文件中实现 bean,那么您不必 自己编译它们。相反, Spring 读取文件,获得 脚本源代码并在运行时编译它们,使它们可用于应用程序上下文。这比直接编译 更灵活性,因为不一定 必须将 .groovy 文件部署在应用程序的 JAR 或 WAR 文件中,它们还可以来自文 件系统的某个地方或 URL。 接下来介绍各种不同的配置选项的应用。要记住在构建过程中自己编译的 Groovy 类中定义的 bean 与在 .groovy 脚本中定义的 bean 之间的区别。 配置编译的 G |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |