天天看點

來玩Play架構01 簡介

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝!

說到網絡架構,Ruby的Ruby on Rail和Python的Django都相當輕巧好用,但Java下的架構,則要沉重很多。有人是以質疑Java語言本身是否符合網絡時代的需求。Java大神們對這一問題嗤之以鼻。想要輕巧好用的架構?寫一個給你就是了。Java程式員Guillaume Bort在JVM上創造了一個全新的架構Play framework。Play擁有ROR或Django那樣的靈巧,又不失Java的穩定,更有JVM這一強大的運作平台。魔鬼身材,天使臉蛋。讓我們來玩玩Play吧。

來玩Play架構01 簡介

Play的安裝相當簡單。在Play官網下載下傳,我下載下傳的是2.2.1版本。該版本的API文檔為2.2.1API。

把下載下傳的.zip檔案解壓縮,并将解壓縮後的檔案夾放到某個位置。比如/home/vamei/Util。

檔案夾裡重要的是可執行檔案play。我一般是在/home/vamei/Util/下建立一個bin檔案夾,并在該檔案夾中建立play的軟連結。

最後,将建立的bin檔案夾放入系統路徑。

在指令行輸入play,将顯示:

注:

上面是Ubuntu下的安裝過程。Linux系統都類似。

在Mac OS下,選擇合适的路徑安裝play,過程也相同。

對于Windows下的安裝,沒有探索。歡迎補充。

切換到/home/vamei,建立一個網絡應用test,

跟随訓示,輸入項目的必要資訊。應用名和程式設計語言,分别為test和Java。

将有一個新的檔案夾/home/vamei/test出現在目前路徑。它包含該項目的所有檔案。

上面最重要的檔案夾是app,裡面包含了項目的MVC定義。Play采用MVC架構(model-view-control)。建立項目已經建立好了controllers和views,包含有控制器(controller)和視圖(view)模闆。如果有必要,可以在app下建立models檔案夾,用來定義資料模型(model)。

application.conf包含了項目的各個設定參數。

routes記錄了url請求和控制器的對應關系。當有http請求進入時,Play将根據該檔案的設定,調用特定的控制器行動。

現在,切換到/home/vamei/test,并運作項目。輸入指令:

Play自己包含有一個網絡伺服器子產品,是以不需要和apache銜接,就可以作為網絡伺服器,直接工作。 

打開浏覽器,通路localhost:9000,将看到運作的test應用。

來玩Play架構01 簡介

這一頁面是建立項目自帶的頁面。

Play架構的主要功能是動态生成http響應。http協定按照“請求-響應”(request-response)的方式工作。http通信的相關介紹,可參考http協定。 

Play是MVC架構,分步驟生成響應,而每一步由不同的子產品負責。上面的一個簡單頁面,是如下過程産生的:

來玩Play架構01 簡介

圖中的黑色字型表明了這些功能在項目中所在的具體檔案。

routes負責将url導向正确的行動(action)。action是生成http響應的核心。一個action會經過一系列的運算,産生一個響應。而控制器controller隻是一個action的集合。在Java程式設計中,action是controller類的一個方法。action的響應可以傳給某個視圖,比如上面的index.scala.html,進而更好的控制顯示效果。最後的結果,就是一個http響應,也就是我們所看到的頁面。

通過個性化上述過程,我們可以設計出功能更豐富的網絡應用。

Play自帶的伺服器可以持續運作。将Play安裝在目标伺服器,比如雲上後,在Play項目的根目錄下,用:

來持續運作伺服器。此後你可以按Ctrl-D來傳回指令行。此時的Play不依賴于Shell,即使退出伺服器的登陸,Play還是會持續運作。

使用其它端口運作:

停止運作。切換到項目的根目錄下,使用指令:

play new

play run

動态生成響應

model-control-view

歡迎繼續閱讀“Java快速教程”系列文章

如果你喜歡這篇文章,歡迎推薦。