?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
這個小應用案例使用Spring 2.0引入的動態(tài)語言支持來實現(xiàn)Spring MVC控制器。
這個Web應用程序很簡單,因為其目的只是把基本的動態(tài)語言支持運用于Spring MVC中,沒別的東西了。
應用程序中有一個Groovy文件。名字是'FortuneController.groovy',放在'war/WEB-INF/groovy'文件夾中。 'war/WEB-INF/fortune-servlet.xml'這個Spring MVC配置文件的 'fortune' bean會引用該Groovy腳本文件。
通過<lang:groovy/>元素的'refresh-check-delay'屬性,'fortune' bean被設置為refreshable bean。(校對時注意去掉本括號,動態(tài)語言章節(jié)中refreshable未翻譯,故此處對該句做了相應調(diào)整。) 該屬性設置為'3000'也就是說對'FortuneController.groovy'會在3秒鐘延時后生效。
如果是把應用程序部署到Tomcat(打個比方),那你可以進入'/WEB-INF/groovy'文件夾,直接編輯'FortuneController.groovy'文件。 任何改變都會自動生效,'fortune' bean將被重新配置……完全無需停止、重新部署并重啟應用程序。親自嘗試一下吧…… 毫無疑問'FortuneController.groovy'文件里并沒有什么很復雜的邏輯(這是件好事,因為Spring MVC中的控制器本來就該盡可能地簡單一些)。
你可以試著返回一個默認的Fortune而不是將它代理給注入的FortuneService,或者也可以返回一個不同的邏輯視圖名, 如果想更進一步的話,還可以自己創(chuàng)建一個實現(xiàn)了FortuneService接口的Groovy實現(xiàn),并將它插入Web應用程序中。 也許你自定義的Groovy FortuneService可以訪問Web服務來獲得某些Fortune,亦或者應用一些不同的隨機邏輯來返回Fortune,隨便怎么樣都行。 關(guān)鍵是在做這些變更時無需重新部署應用程序。這在做快速原型開發(fā)時簡直太棒了。
samples/showcases/dynamvc目錄包含了web-app的源代碼。部署時需要用Apache Ant進行構(gòu)建。 唯一的要求是JDK >=1.4(Groovy要求JDK至少要是1.4的)Ant >=1.5。
在該目錄中運行“build.bat”,帶上某個目標(例如"build.bat build","build.bat warfile")。 請注意,用這種方式啟動Ant你需要在classpath中存在一個XML解析器(例如放在"%JAVA_HOME%/jre/lib/ext"中;包含在JDK 1.4中)。 可以用“warfile.bat”來生成WAR文件。WAR文件會被建在"dist"目錄中。