Grails 1.2参考文档速读(19):插件
生活随笔
收集整理的這篇文章主要介紹了
Grails 1.2参考文档速读(19):插件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Grails是一個(gè)插件架構(gòu),這一點(diǎn)我們已經(jīng)在前面體會(huì)到了,最典型的就是GORM一節(jié)中,我們明明沒有定義crud操作,但在運(yùn)行時(shí)卻可以使用它,造成這一結(jié)果的“元兇”就是我們預(yù)先安裝的Hibernate插件。在這一節(jié)里,我們將對(duì)這背后的機(jī)制進(jìn)行一番探究,對(duì)插件有一個(gè)基本的了解。Plugin是Grails的主要擴(kuò)展點(diǎn),其工程跟普通Grails工程并無區(qū)別,只是多了一個(gè)描述文件。描述文件位于位于工程根目錄,是以GrailsPlugin結(jié)尾的Groovy文件。同時(shí),工程中缺省沒有URL Mappings,因此Controller無法馬上工作,如果需要?jiǎng)t必須手工添加該文件。插件相關(guān)的命令如下:
- grails create-plugin
- grails run-app
- grails package-plugin
- grails install-plugin url(或路徑)
- grails list-plugins:列出插件倉庫中插件
- grails plugin-info 插件名:列出插件信息
- grails release-plugin
- version:版本
- title:短描述
- author:作者
- authorEmail:作者的Email
- description:長(zhǎng)描述
- documentation:文檔URL
- grails-app/conf/DataSource.groovy
- grails-app/conf/UrlMappings.groovy
- build.xml
- /web-app/WEB-INF目錄中所有內(nèi)容
- 插件文件中pluginExcludes定義的內(nèi)容,如:
def pluginExcludes = ["grails-app/views/error.gsp"]
- 在指定倉庫中查找,grails list-plugins -repository=myRepository
- 在指定倉庫中發(fā)布,grails release-plugin -repository=myRepository
- 原Plugin工程的grails-app目錄內(nèi)容移至plugins/plugin-version/grails-app。
- 原Plugin工程中web-app的靜態(tài)內(nèi)容移至web-app/plugins/plugin-version。
- 原Plugin工程的Java和Groovy內(nèi)容編譯到web-app/classes
- *Classes,獲得某artefact的所有類:application.controllerClasses
- get*Class,獲得某artefact的指定類:application.getControllerClass("ExampleController")
- is*Class,判斷指定類是否是某artefact:application.isControllerClass(ExampleController.class)
- getPropertyValue
- hasProperty
- newInstance
- getName
- getShortName
- getFullName
- getPropertyName
- getLogicalPropertyName
- getNaturalName
- getPackageName
- scripts/_Install.groovy,plugin被安裝后觸發(fā)
- scripts/ _Update.groovy,update命令觸發(fā)
- doWithSpring:Spring配置,使用Spring Bean Builder。
- doWithWebDescriptor:web.xml,使用XmlSlurper。
- doWithApplicationContext:ApplicationContext構(gòu)建之后。
- doWithDynamicMethods:動(dòng)態(tài)增加動(dòng)態(tài)方法
- watchedResources屬性:監(jiān)測(cè)的資源。
- onChange閉包:監(jiān)視資源發(fā)生變化時(shí)調(diào)用,傳入event對(duì)象,它的主要屬性:event.source,事件源,重載的類或Spring資源;event.ctx,Spring的ApplicationContext實(shí)例;event.plugin,管理資源的plugin對(duì)象(通常是this);event.application,GrailsApplication實(shí)例
- influences屬性:定義影響的plugin,在重載時(shí)會(huì)一并載入。方向:由此及彼。
def influences = ['controllers'] - observe屬性:定義觀察的plugin,當(dāng)那個(gè)插件變化時(shí),獲得變化通知事件。方向:由彼及此。
def observe = ["hibernate"]def observe =["*"]
- 例1: def dependsOn = [dataSource:1.0, core: 1.0]
- 例2: def dependsOn = [foo:"1.0 > 1.1"]。該表達(dá)式表示1.0~1.1版,包括1.0和1.1。可以使用*代表任意版本,如[foo:"* > 1.0"]、[foo:"1.0 > *"] 。
轉(zhuǎn)載于:https://blog.51cto.com/bcptdtptp/306638
總結(jié)
以上是生活随笔為你收集整理的Grails 1.2参考文档速读(19):插件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曲阜师范大学附属中学日照校区(曲阜师范大
- 下一篇: 金霏(说一说金霏的简介)