快速业务通道

精通Grails: 了解插件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

精通Grails: 了解插件

时间:2011-07-25 IBM Scott Davis

在开始阶段,精通 Grails 主要着眼于核心 Grails 功能。对如何将基础部件组合在一起了解得越多 ,将其结合起来构建一个完善的产品应用程序就会变得越容易。尽管我前面多次提到过插件,但我均有意 回避了对插件做深入的介绍。现在,该是介绍的时候了。

在接下来的几篇系列文章中,我将与您一起探索 Grails 插件系统。最早,Grails 平台的构建对可插 入性是有所考虑的。正因为有了这个虽小却十分重要的考虑,我们才能很方便地利用上百个预捆绑的功能 块。

在本文写作之时,清单 1 所示的 Groovy 脚本已经能够返回 225 个插件。(有关此脚本如 何工作的详细信息,请参见 “实战 Groovy:构建和解析 XML”。)

清单 1. 计算可用 Grails 插件的简单 Groovy 脚本

def addr = "http://plugins.grails.org/.plugin-meta/plugins-list.xml" def  plugins = new XmlSlurper().parse(addr) def count = 0 plugins.plugin.each{  println it.@name  count++ } println "Total number of plugins:  ${count}"

要获得一个更为友好的列表,可以在命令提示符后键入 grails list-plugins 或访问 Grails Plugins 站点。

何为插件?

老练的 Java™ 开发人员都是一些精明的探寻者和收集者。他们从不梦想着去编写自已的日志库 ;而是简单地把 log4j JAR 放入其类路径。需要一个 XML 解析器吗?那好,将 Xerces JAR 添加到您的 项目中即可。这些可插入的功能块是面向对象编程的可重用性的一种体现。

Grails 插件可服务于同样的目的,不过,规模更大。它们可以包括很多 JAR 及 GroovyServer Page (GSP)、控制器、TagLib、服务等。就像 SiteMesh 将两个 GSP 合并成一个一样,插件可以将两个或多个 Grails 应用程序合并成一个。这样您就可以将更多的精力用于核心业务需求,在需要的时候,从外部资 源加入所需的额外功能 — 查询、认证、备用表示层等。

此外,插件实质上也是外部 资源。虽然 Grails 开发团队已经编写了一些有价值的插件,但绝大多数 插件仍来自于社区。实际上,Grails 团队一直致力于在适当的时候将其核心功能整合进插件,这就使得 Grails 自身在每次发布的时候都更小也更为稳定。

那么如何将其应用到 Blogito — 您在本系列中逐步构建的这个 “小型博客” 应用程序中呢?假设 您想添加的下一个功能是本地搜索功能。并且您愿意采用一个现有的解决方案而不是从头构建一个您自已 的搜索基础架构,那么请往下看。

安装一个搜索插件

这个搜索插件能为您的应用程序带来类似 Google 那样的搜索能力。它使用 Apache Lucene 创建索引 ,用 Compass 将索引钩挂到 Grails Object Relational Mapping (GORM)/Hibernate 生命周期。这就意 味着每当您创建、更新或删除一个 domain 类时,Lucene 索引都会相应更新。

要想安装此插件,请键入 grails install-plugin searchable。(下一章节将会深入介绍安装插件时 的技术细节。)

接下来,将这行代码 — static searchable = true — 添加到 grails-app/domain/Entry.groovy, 如清单 2 所示:

清单 2. 让 Entry 类成为可查询的

class Entry {   static searchable = true   static constraints = {    title()    summary(maxSize:1000)    filename(blank:true, nullable:true)    dateCreated()    lastUpdated()   }   static mapping = {    sort "lastUpdated":"desc"   }   static belongsTo = [author:User]   String title   String summary    String filename  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号