Cloud Foundry 是開放源碼的 PaaS 解決方案,支援多種程式語言、開發框架及資料庫等服務,而且更容易開發、測試及佈署。本系列文章將從零開始,和學習者一起開啟雲端應用程式開發的大門。
今天開始陸續介紹 Grails 在 Cloud Foundry 的開發佈署方式。
前面的章節已經介紹過 Sinatra 、 Ruby on Rails 及 Node.js 等開發框架,接下來要介紹的是屬於 Java 世界的 Grails,這個開發框架由同屬 VMWare 公司的 SpringSource 發展,在 Cloud Foundry 平台當然也受到良好的支援及整合。
Cloud Foundry 建議的開發工具之一:STS(Spring Tool Suite),提供 Grails 的整合開發環境;另外還有 NetBeans 及 IntelliJ IDEA 等開發工具,也都支援 Grails 專案的開發。
但是對於經常使用整合開發環境的 Java 開發者來說,剛開始使用 Grails 反而會有些不習慣,因為實際上 Grails 並不需要特別的開發工具,只要使用 command-line 搭配一般程式碼編輯器就能輕鬆開發。你可以將 Grails 當做是 Java 版的 Rails,我也喜歡將它稱為「Groovy on Grails」。
為什麼是 Groovy 而非 Java 呢?
因為 Grails 捨棄繁瑣難寫又依賴開發工具的 Java 程式語言,改用另一個在 Java VM 上執行的新語言:Groovy,這個簡化 Java 又加上許多增強語法的新語言,擁有 Scripting Language 的開發簡便優勢,因此讓 Grails 在開發整個專案時,都可以像 Ruby on Rails 或 PHP 那樣,只要撰寫容易修改及測試 Script 程式碼即可。
舉例來說,定義一個 Model(Domain Class) 很簡單,只要使用 Groovy 撰寫 POJO(Pure Object Java Object)風格的類別。
::
class User {
String name
String password
}
撰寫 Controller 也相當容易:
::
class UserController {
def show(Long id) {
[user: User.get(id)]
}
}
至於 View 則充分利用 JSP + JSTL 但是更加簡單:
::
<h1>${user.name}</h1>
<p>Password: ${user.password}</p>
Grails 也提供 Scaffolding 並支援 Unit/Integration Test 等現代開發框架應具備的功能,同樣可以利用既有的 Java 套件(例如 JasperReport);但比起傳統複雜的 Java EE 開發框架,開發更加簡單快速。
延伸閱讀
* Spring Framework(http://www.springsource.org/spring-framework)
* Grails(http://grails.org/)
* Groovy(http://groovy.codehaus.org/)
* NetBeans and Grails(http://netbeans.org/kb/docs/web/grails-quickstart.html)
* STS and Grails(http://www.grails.org/STS+Integration)
* IntelliJ IDEA and Grails(http://www.jetbrains.com/idea/features/groovy_grails.html)