天天看點

playframework 簡介

      play是一個為Scala開發者和Java開發者量身打造的高效的、一站式的開發web開發架構,适用于網站開發,也可以用作rest後端。目前,有越來越多的公司被它的“簡潔”和“高效”所吸引,并且投入使用,例如LinkedIn等。如果你是一名Scala開發者,或者你是一名Java“極客”,那麼相信你看到這個架構肯定會眼前一亮。在此,提倡用Scala來運用play架構。

    以下是我個人總結的play的優點:

   1、play是非常輕量的。傳統的Java web架構包含了一個中間層:servlet。由于servlet的存在,導緻web的結構很“臃腫”,而且部署所在的伺服器還要求可以解析servlet代碼(JBoss、Tomcat等),是系統的結構看起來很重。但是play卻不同,沒有"servlet"這一層,而且本身包含”netty“,打包之後不再是”war“包,而是直接是一個小型的”伺服器“(相當于”web程式+tomcat“),這樣一來,服務端程式也就真正變成了一個”伺服器上的程式“,而不是一個還需要Tomcat等應用伺服器的應用。下圖是傳統Java web架構和play的圖:

               傳統web架構:

playframework 簡介

play架構:

playframework 簡介

   2、play内嵌了支援異步I/O的server—Netty。與傳統的Java web架構不同,play是異步的,這提供了極大的便利,可以不再考慮線程的阻塞問題,而且應用程式更加高效,但是要有異步程式設計的心理準備。異步的架構實際上現在已經成了主流架構。

   3、play支援rest。這一點也很特别,play本身含有一個”Router“,這個Router可以自定義你所需要的rest接口,并且告訴程式rest接口需要哪個類中的方法去解決(以後會詳細談)。值得注意的是:在play上定義的rest接口不僅網頁端可以調用(我想play作者當初也是想直接用于網頁),而且可以直接用來當後端程式和前端client互動的接口,或者分布式系統中其他系統的接口!也就是說:play不僅可以用來制作網站,還可以直接來做後端伺服器程式!隻需把網站的網頁端”削掉“即可!

   4、play支援主流的MVC設計模式

   5、play和Scala相同,都是”為工業而生!不做學術!“play架構本身提供了非常多的庫:可以解析Json,将Json和相應的class 類(實際上是case class)互相轉換;play本身有內建了sbt(類似于Maven的項目建構工具),可以直接在play上添加依賴;play的社群也很強大,提供了非常多很棒的例子:www.playframework.com;  https://www.typesafe.com/。

   6、play架構是直接建立在Http協定之上的,這就要求大家無需像Java web一樣過多的了解HTTP協定之外的web架構API結構:例如Servlet的生命周期等等,而是直接了解HTTP的請求、解析、傳回的協定本身的内容,這樣可以更加清晰的了解業務本身的處理流程,讓程式更加簡潔。

    。。。。

   play的優點還有很多,更多的介紹資訊請看play的官網www.playframework.com

快速開始:

1、下載下傳最新的Typesafe Activator (https://www.typesafe.com/get-started)

2、解壓到本地

3、切到解壓目錄下,運作cmd

4、運作指令 activator ui

5、通路 http://localhost:8888  (注意:Chrome最好是浏覽器,有些低版本浏覽器不支援)

6、在打開的頁面中找到如下圖所示的兩個sample:一個是play的Java版的sample,一個是Scala版的

playframework 簡介

7、選擇其中一個,選擇本地的一個下載下傳路徑(我習慣放到D盤)。

8、下載下傳完畢後會打開一個web版的IDE,非常的炫酷。這時候你點選”IDE“中的run或者,到下載下傳好的工程下cmd  :activator run。

這時候你通路:http://localhost:9000得到如下圖,你就成功了

playframework 簡介

或者:你也可以采用playframework官方提供的方式,找到activator 解壓的目錄,然後運作cmd:

activator new my-first-app play-java
cd my-first-app
activator run
           

也會得到上圖的結果。(如果是Scala開發者,可以将上面的 ”play-java“改為”play-scala“)

更多精彩内容,請關注我的微信公衆賬号 網際網路技術窩

playframework 簡介