快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
中使用 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 Leberknight

Groovy 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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

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号