Play Framework 2.0 介紹

fmms 12年前發布 | 32K 次閱讀 Web框架 Play Framework

Play Framework 剛剛發布了 2.0 正式版,來看看 Play Framework 2.0 的新特性介紹吧。

原生支持 Java 和 Scala

Play Framework 1.x 完全是采用 Java 編寫的,可通過插件來支持 Scala,而 2.0 版本已經完全內置對 Scala 的支持,而且 Play 也首推使用 Scala 開發應用,你可以同時使用 Scala 和 Java 來開發 Play 應用。

Play Framework 2.0 介紹
使用 Java 編寫的控制器

Play Framework 2.0 介紹
使用 Scala 編寫的控制器


快速引用開發

在 1.x 版本中,提供了 “Play feel” 基于控制臺的應用發布和基于瀏覽器的錯誤報告,而 Play 2.0 大大的擴展了開發者執行代碼片段、測試以及在運行應用上下文中執行 SHELL 腳本的能力

Play Framework 2.0 介紹
Pushing Type Safety to a New Level

受益于靜態類型語言,編譯器可單獨對你的代碼中的某一部分進行檢查,這也就是為什么 Play 2.0 默認使用基于 Scala 模板引擎編寫 Play 應用的原因。這并不是說你必須是精通 Scala 才能辦到。但熟悉 Scala 對開發 Play 2.0 應用是很有好處的。

Play 2.0 在進行編譯和類型檢查更加的深入,Routes (用來定義 URL 和 action 的映射), 模板以及資源可直接編譯 (使用 LESS, CoffeeScriptGoogle Closure compiler),提供了一個統一的開發流程,不管是客戶端開發還是服務器端。其結果是更多的錯誤將在開發階段暴露出來,加速開發的進程,在多人參與的大項目中也跟易于管理。

Play Framework 2.0 介紹
route 編譯錯誤檢測

玩得(Playing) 更爽Playing Nicely

Play 1.x 通過 Play 特有的運行環境來實現一些技術,例如 Java類屬性以及類的熱加載。在 Play 2.0 中我們采用更加標準的方法做運行時的發布,使得使用 Scala 編寫核心框架并在 SBT 上構建變得可能。

Play 2.0 提供一個跟 Play 1.x 一樣簡單的 “play new, run, start” 體驗,同時具有跟具可擴展性的基礎框架。Play 2.0 提供一個預先配置的構建腳本,使得 1.x 的大多數項目無需修改就可以在 2.0 中運行。但如果你希望修改應用程序的構建和發布,你需要根據需要來定制適配器。

Play Framework 2.0 介紹


Pick and Choose

在最近幾年,Web 應用技術發展非常迅速,Play 2.0 提供了一個很先進的架構可以讓你非常靈活的進行功能定制。例如你不想使用數據庫,那么你可以禁用 DBPlugin 插件;想使用你自己的模板引擎,沒問題,用插件。你完全可以根據你的需要來決定 Play 提供的功能。

Play Framework 2.0 介紹
在 conf/application.conf 中禁用插件
 

透過 Akka 實現靈活的伸縮性
 
Play 基于一個輕量級、無狀態、Web友好的架構,其特點就是可預測以及最小的資源消耗(包括 CPU、內存和線程),特別適合用來開發高可伸縮性的應用程序。這里部分要感謝 Akka 2.0。 Akka 是一個用 Scala 編寫的庫,用于簡化編寫容錯的、高可伸縮性的 Java 和 Scala 的 Actor 模型應用。

Play Framework 2.0 介紹
在本例中,你可看到 Calculator actor 映射到 Play 的非阻塞方式

Play Framework 2.0 介紹
上面你可看到 ChatRoomActor 使用 Comet 發送消息

高級 I/O 和流處理
 
Web 開發一項非常重要的技術就是“推”和非堵塞技術。Play 2.0 使用一個 Iteratee IO 實現用于實現對“推”和非堵塞支持,以及使用內置的 WebSocket 和 Comet 來進行進行文件流處理。

Play Framework 2.0 介紹
一個 Scala 控制器使用了內置的 WebSockets 支持


Ready, Steady, Play!

你是否已經準備好了開始 Play 2.0 之旅呢?可以先看看 Play 2.0 提供的一些 示例程序 ,然后再做決定 :)

Via typesafe   OSCHINA原創翻譯
 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!