Play Framework是一個開源的Web框架,背後商業公司是Typesafe。要介紹Play以前,首先理清Play的兩個不一樣的分支。 Play 1.x 使用Java開發,最新版本是1.3.1,只支持Java項目。從11年開始就進入了維護階段,新項目通常不考慮使用Play1。 Play 2.x 使用Scala和Java開發,同時支持Java和Scala項目。 這裏主要介紹最新的Play2.4 for Java。有一點須要提早說明,雖然Play2主要由Scala開發,可是對於項目中的通常開發人員而言, 使用Play能夠徹底不懂Scala,具體狀況後面會說明。java
Play2的模板是很強大而且容易上手的. 相對於Java領域其餘模板引擎(Freemarker, Velocity, JSP, Groovy, etc), 主要有三個特色.
1) 簡單易上手, 沒有JSP裏面繁雜的內置對象和指令, 全部功能都經過方法調用完成.
2) 主流IDE中都支持Play模板的靜態類型檢查, 相似JSP.
3) 支持反向路由.git
這個上面介紹過,不用重啓服務器。github
日常開發的時候使用run啓動Play,是跑在dev模式。 Play會定時掃描源碼目錄進行熱更新,而且類都是訪問的時候再加載,提升啓動速度。 使用start啓動項目就運行在prod模式。Play內置dist命令,能夠把全部的文件打包成一個zip,解壓以後直接運行bin目錄下的可執行文件便可啓動項目,除了JDK以外無須任何其餘外部依賴。 這大大減輕了運維成本,同時也可以很方便的進行持續集成(CI)。redis
這個以前也說過,Play拋棄了Servlet/JSP裏Session等概念, 內置沒有提供方法將對象與服務器實例進行綁定(你要使用HashMap存的話Play也沒辦法)。 推薦的作法是使用外部緩存, 好比Redis, Memcached等。可能有人會以爲沒有Session是Play的一個缺點(Play裏的Session和Servlet Session不是一回事), 可是隻要你開發過流量大一點的應用, 你就會理解這點。緩存
若是你以前開發過Java項目, 確定寫過**.properties或者管理過一大堆的xml。Java內置庫對properties文件的處理是很弱的,你不得不本身寫一些工具類去進行處理, 並且properties文件還不支持更復雜的語法。Play使用Typesafe Config庫,配置文件使用HOCON格式,默認配置文件爲application.conf。 你能很容易讀取裏面的配置, 而且你也能夠把本身的配置寫在裏面。因此項目中基本不須要使用properties或者xml文件了,除了第三方庫須要的。服務器
RoR框架之因此好用,主要緣由之一就是圍繞RoR有至關豐富的插件可供選擇,不少業務功能甚至都不須要開發就能實現。Play的插件數量固然相對於RoR仍是要少一些, 不過你遇到的需求基本都有現成的插件可使用。好比發郵件, 受權和驗證, sitemap生成,第三方登陸等等。本身寫一個插件也很簡單。架構
由於Play誕生的時候TDD已經很火熱,因此Play對測試的支持很是好。 app
Play2從誕生起就能很容易的支持RESTful風格的架構框架
轉載自:http://blog.csdn.net/u011225629/article/details/47971093less