首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 開發 2.0:Gaelyk 輕量框架加速 Google App Engine 開發

     編輯:Java 相關知識

輕量級開發新趨勢

Google App Engine (GAE) 提供免費配額(500MB 儲存、月均 500 萬頁面瀏覽),但犧牲部分靈活性(不支持所有核心 Java 庫)。開源社群迅速推出適配框架,Gaelyk 即是典型代表——專為 Groovy 打造的輕量 MVC 框架,注入易用性 API,配合 Eclipse 插件實現極速開發部署。

環境搭建

  1. 安裝 Eclipse Google App Engine 插件
  2. 下載 Gaelyk JAR 與 Groovy All JAR (groovy-all-1.6.5.jar)
  3. 於 GAE 管理面板建立應用程式 ID
  4. 在 Eclipse 建立 Google Web Application Project(取消 Use Google Web Toolkit)
  5. 將 JAR 放入 war/WEB-INF/lib

關鍵配置

appengine-web.xml

<static-files>
  <exclude path="/WEB-INF/**.groovy" />
  <exclude path="**.gtpl" />
</static-files>

防止 GAE 靜態服務 Groovy 模板文件(.gtpl),由 Gaelyk 處理。

web.xml

<servlet>
  <servlet-name>GroovletServlet</servlet-name>
  <servlet-class>groovyx.gaelyk.GaelykServlet</servlet-class>
</servlet>
<servlet>
  <servlet-name>TemplateServlet</servlet-name>
  <servlet-class>groovyx.gaelyk.GaelykTemplateServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>GroovletServlet</servlet-name>
  <url-pattern>*.groovy</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>TemplateServlet</servlet-name>
  <url-pattern>*.gtpl</url-pattern>
</servlet-mapping>
<welcome-file-list>
  <welcome-file>index.gtpl</welcome-file>
</welcome-file-list>

實戰:停車罰單系統

建立 Entity(無需 POJO)

def formatter = new SimpleDateFormat("MM/dd/yyyy")
def offensedate = formatter.parse("${params.of_month}/${params.of_day}/${params.of_year}")

def ticket = new Entity("ticket")
ticket.officer = params.officer
ticket.license = params.plate
ticket.issuseDate = offensedate
ticket.location = params.location
ticket.notes = params.notes
ticket.offense = params.offense

ticket.save()
redirect "viewticket.groovy?id=${ticket.key.id}"

Gaelyk 增強 Entity,動態屬性賦值極簡潔。

查詢與列表

import com.google.appengine.api.datastore.Query
import static com.google.appengine.api.datastore.FetchOptions.Builder.withLimit

def query = new Query("ticket")
query.addSort("issuseDate", Query.SortDirection.DESCENDING)
def tickets = datastoreService.prepare(query).asList(withLimit(10))
request.setAttribute("tickets", tickets)
forward "index.gtpl"

模板視圖

.gtpl 支援 include、Groovy 腳本塊,類似 JSP 但更強大:

<% include "/WEB-INF/includes/header.gtpl" %>
<% def ticket = request.getAttribute("ticket") %>
<table>
  <tr><td>${ticket.officer}</td>...</tr>
</table>
<% include "/WEB-INF/includes/footer.gtpl" %>

部署上雲

Eclipse 插件一鍵 Deploy,Google 自動處理基礎設施。Gaelyk 讓雲端開發如本地般輕鬆,免費額度足夠中小流量應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved