Play Framework 2.0 新特性介紹
Play Framework 剛剛發(fā)布了2.0正式版,來看看 Play Framework 2.0 的新特性介紹吧。
原生支持 Java 和 Scala
Play Framework 1.x 完全是采用 Java 編寫的,可通過插件來支持 Scala,而 2.0 版本已經(jīng)完全內(nèi)置對 Scala 的支持,而且 Play 也首推使用 Scala 開發(fā)應(yīng)用,你可以同時使用 Scala 和 Java 來開發(fā) Play 應(yīng)用。
使用 Java 編寫的控制器
使用 Scala 編寫的控制器
快速引用開發(fā)
在 1.x 版本中,提供了 “Play feel” 基于控制臺的應(yīng)用發(fā)布和基于瀏覽器的錯誤報(bào)告,而 Play 2.0 大大的擴(kuò)展了開發(fā)者執(zhí)行代碼片段、測試以及在運(yùn)行應(yīng)用上下文中執(zhí)行 SHELL 腳本的能力
Pushing Type Safety to a New Level
受益于靜態(tài)類型語言,編譯器可單獨(dú)對你的代碼中的某一部分進(jìn)行檢查,這也就是為什么 Play 2.0 默認(rèn)使用基于 Scala 模板引擎編寫 Play 應(yīng)用的原因。這并不是說你必須是精通 Scala 才能辦到。但熟悉 Scala 對開發(fā) Play 2.0 應(yīng)用是很有好處的。
Play 2.0 在進(jìn)行編譯和類型檢查更加的深入,Routes (用來定義 URL 和 action 的映射), 模板以及資源可直接編譯 (使用 LESS, CoffeeScript 和 Google Closure compiler),提供了一個統(tǒng)一的開發(fā)流程,不管是客戶端開發(fā)還是服務(wù)器端。其結(jié)果是更多的錯誤將在開發(fā)階段暴露出來,加速開發(fā)的進(jìn)程,在多人參與的大項(xiàng)目中也跟易于管理。
route 編譯錯誤檢測
玩得(Playing) 更爽Playing Nicely
Play 1.x 通過 Play 特有的運(yùn)行環(huán)境來實(shí)現(xiàn)一些技術(shù),例如 Java類屬性以及類的熱加載。在 Play 2.0 中我們采用更加標(biāo)準(zhǔn)的方法做運(yùn)行時的發(fā)布,使得使用 Scala 編寫核心框架并在 SBT 上構(gòu)建變得可能。
Play 2.0 提供一個跟 Play 1.x 一樣簡單的 “play new, run, start” 體驗(yàn),同時具有跟具可擴(kuò)展性的基礎(chǔ)框架。Play 2.0 提供一個預(yù)先配置的構(gòu)建腳本,使得 1.x 的大多數(shù)項(xiàng)目無需修改就可以在 2.0 中運(yùn)行。但如果你希望修改應(yīng)用程序的構(gòu)建和發(fā)布,你需要根據(jù)需要來定制適配器。
Pick and Choose
在最近幾年,Web 應(yīng)用技術(shù)發(fā)展非常迅速,Play 2.0 提供了一個很先進(jìn)的架構(gòu)可以讓你非常靈活的進(jìn)行功能定制。例如你不想使用數(shù)據(jù)庫,那么你可以禁用 DBPlugin 插件;想使用你自己的模板引擎,沒問題,用插件。你完全可以根據(jù)你的需要來決定 Play 提供的功能。
在 conf/application.conf 中禁用插件
透過 Akka 實(shí)現(xiàn)靈活的伸縮性
Play 基于一個輕量級、無狀態(tài)、Web友好的架構(gòu),其特點(diǎn)就是可預(yù)測以及最小的資源消耗(包括 CPU、內(nèi)存和線程),特別適合用來開發(fā)高可伸縮性的應(yīng)用程序。這里部分要感謝 Akka 2.0。 Akka 是一個用 Scala 編寫的庫,用于簡化編寫容錯的、高可伸縮性的 Java 和 Scala 的 Actor 模型應(yīng)用。
在本例中,你可看到 Calculator actor 映射到 Play 的非阻塞方式
上面你可看到 ChatRoomActor 使用 Comet 發(fā)送消息
高級 I/O 和流處理
Web 開發(fā)一項(xiàng)非常重要的技術(shù)就是“推”和非堵塞技術(shù)。Play 2.0 使用一個 Iteratee IO 實(shí)現(xiàn)用于實(shí)現(xiàn)對“推”和非堵塞支持,以及使用內(nèi)置的 WebSocket 和 Comet 來進(jìn)行進(jìn)行文件流處理。
一個 Scala 控制器使用了內(nèi)置的 WebSockets 支持
Ready, Steady, Play!
你是否已經(jīng)準(zhǔn)備好了開始 Play 2.0 之旅呢?可以先看看 Play 2.0 提供的一些示例程序,然后再做決定 :)
你還可以看看如何開始 Play 2.0 開發(fā)。
Play!專題:拯救Java程序員的神器:Play Framework
原文鏈接:http://www.oschina.net/question/12_44294
【編輯推薦】