日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Play Framework框架概述

有別于其他臃腫的企業(yè)級Java框架,簡潔的Play框架提供另外一種選擇,它關(guān)注于開發(fā)者的效率和 RESTful 風(fēng)格的架構(gòu)。Play 是敏捷軟件開發(fā)的完美伴侶。

Play 框架的目標(biāo)是讓基于 Java 的 web 應(yīng)用開發(fā)變得更加容易,讓我們看一下它是怎么做到的。

想不想看看代碼?

閱讀 你可以使用 Play 做的5件很酷的事 ,或者直接從 Hello World 入門指南 開始 。


沒有痛苦的 Java 框架

Play 是一個純 Java 的框架,它讓你保持使用你喜歡的開發(fā)工具和類庫。如果你已經(jīng)是一個使用 Java 平臺的開發(fā)者,

那么你不需要切換到另一種語言,其他 IDE 或者其他類庫, 而僅僅是切換到一個效率更高的 Java 環(huán)境!


修改 bug 后自動重新加載

Java 平臺因?yàn)檩^低的開發(fā)效率,已經(jīng)是聲名狼藉了,主要的原因就是重復(fù)和繁瑣的“編譯-打包-部署”的周期。

這就是為什么我們重新對這種開發(fā)周期進(jìn)行了思考,并且通過 Play 讓開發(fā)變得更有效率。

Play 框架自動編譯 Java 源代碼,然后直接熱加載到 JVM 中而不需要重啟服務(wù)器。你可以編輯代碼,框架自動重新加載,然后直接就看到修改后的結(jié)果,就像在 LAMP 或者 Rails 環(huán)境中一樣。

更有趣的是你可以根據(jù)自己的喜好,僅僅使用一個簡單的文本編輯器進(jìn)行開發(fā),而不需要使用功能齊備的 Java IDE。

當(dāng)有錯誤發(fā)生時,框架會盡最大的努力,辨別并顯示出錯誤信息。

Play 甚至對 Java 堆棧跟蹤信息進(jìn)行優(yōu)化,以便幫助你更容易地解決問題??纯?Java 堆棧跟蹤是如何展示模板的執(zhí)行過程的。


簡單的無狀態(tài)的 MVC 架構(gòu)

想想,你在一端有一個數(shù)據(jù)庫,另一端是一個瀏覽器,為什么非要在兩者之間存在一個狀態(tài)呢?

基于有狀態(tài)和組件式的 Java Web 框架使我們很容易自動保存頁面狀態(tài),但是這帶來了很多其他問題:如果用戶打開了第二個窗口時會發(fā)生什么?如果用戶單擊了瀏覽器的后退按鈕呢?

PHP,Ruby on Rails 和 Django 等許多 Web 應(yīng)用框架促進(jìn)了 無共享(Share Nothing) 架構(gòu)的發(fā)展。隨著瀏覽器愈來愈強(qiáng)大,現(xiàn)在很容易使用 Ajax,或者離線存儲去解決客戶端的狀態(tài)問題。

我們不再需要為了在 web 上重建一個偽造的狀態(tài)而去 hack HTTP 模型。 無共享(Share Nothing) 的另一方面好處是,可以更加容易地并行地渲染頁面的各個部分,更容易地是實(shí)現(xiàn)頁面局部更新(漸進(jìn)式增強(qiáng))。


從 HTTP 到代碼的映射

如果你使用過另外一種 Java Web 框架,例如 Servlet API 或者 Struts 框架,那么你已經(jīng)看到了一個把 HTTP 協(xié)議和 Java API 以及一些奇怪的概念關(guān)聯(lián)起來的抽象體系。Play 和它們想的不同,一個 Web 應(yīng)用框架應(yīng)該讓你可以完全地直接地訪問 HTTP 協(xié)議,這是 Play 和其他 Java Web 框架的一個根本性區(qū)別。

HTTP 協(xié)議,請求/響應(yīng)模式,REST 架構(gòu)風(fēng)格, 內(nèi)容類型(content-type)協(xié)商 ,統(tǒng)一資源標(biāo)識符(URI) 都是 Play 框架涉及的主要概念。

例如,綁定一個 URI 模式到 Java 調(diào)用只需要這樣一行:

 
 
 
 
  1. GET    /clients/{id}        Clients.show 

如果 Ajax,REST 風(fēng)格和在頁面之間維護(hù)前進(jìn)/后退操作,是你在日常的 web 開發(fā)工作中需要面對的問題,那么請給 Play 一個機(jī)會吧。


高效的模板引擎

我們很喜歡 JSP 和 表達(dá)式語言背后的思想,但是為什么我們需要這么多的配置文件才能創(chuàng)建一個標(biāo)簽庫呢?為什么我們不能完全地訪問對象模型呢? JSP 有很多的約束,這的確令人沮喪。這就是為什么我們創(chuàng)建了一個自定義的模板系統(tǒng),靈感來自 JSP ,但是沒有它的那些約束。

你,還有其他人,應(yīng)該已經(jīng)疲倦了寫類似這樣的代碼:

 
 
 
 
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  
  3.    
  4.  
  5.       
  6.         You have ${fn:size(emails.unread)} unread email(s)!  
  7.       
  8.       
  9.         You have no unread emails!  
  10.       
  11.  

我們認(rèn)為,你一定更喜歡這樣寫:

 
 
 
 
  1. You have ${emails.unread ?: 'no'} ${emails.unread?.pluralize('email')} ! 

Play 模板引擎使用的表達(dá)式語言是 Groovy ,它的語法和 Java 一致。 Play 主要使用模板引擎來渲染 HTML 內(nèi)容,不過你同樣可以使用它去生成其他內(nèi)容,例如 email 郵件消息,JSON 等等。


JPA 持久化

Java 持久化接口( Java Persistence API )是一個簡潔的 Java 版的 ORM 框架,如果你使用過 JPA ,你會驚訝于它在 Play 框架中變得如此簡單。不需要任何配置,Play 會自動啟動 JPA 實(shí)體管理器,并在代碼發(fā)生修改時自動地同步。

而且如果你使用 Play 提供的 play.db.jpa.Model 作為超類時,它會幫助你把代碼寫得更漂亮。來看一下:

 
 
 
 
  1. public void messages(int page) {  
  2.     User connectedUser = User.find("byEmail", connected()).first();  
  3.     List messages = Message.find(  
  4.         "user = ? and read = false order by date desc",  
  5.         connectedUser  
  6.     ).from(page * 10).fetch(10);  
  7.     render(connectedUser, messages);  


測試驅(qū)動開發(fā)(如果你喜歡)

集成的測試可以讓你更容易的去進(jìn)行測試驅(qū)動開發(fā) (Test-Driven Development) ,你可以寫下各種類型的測試,從簡單的單元測試到完整的 acceptance 測試,然后直接在瀏覽器中使用 Selenium 運(yùn)行測試。代碼覆蓋率也會被考量。


全棧的應(yīng)用框架

Play 框架的最初靈感是來自于我們自己的 Java 應(yīng)用。它包含了創(chuàng)建一個現(xiàn)代 Web 應(yīng)用所需要的所有工具,包含:

  • 支持 JDBC 的關(guān)系數(shù)據(jù)庫
  • 基于 Hibernate ( JPA 接口 ) 的對象-關(guān)系映射框架( ORM )
  • 集成的緩存支持,易用的分布式緩存系統(tǒng)( memcached )
  • 簡單直接的提供 JSON 和 XML 的 Web Service 服務(wù)(我們說的是 真正 的 Web Services,而不是 SOAP 之類)
  • 支持使用 OpenID 進(jìn)行分布式的身份認(rèn)證
  • 可以將 Web 應(yīng)用部署到任何地方(應(yīng)用服務(wù)器,GAE ,云服務(wù),等等)
  • 圖像處理 API

Play 模塊化的架構(gòu)使你可以把你的 Web 應(yīng)用和其他很多的模塊組合起來。多虧了應(yīng)用模塊( application modules ),利用它你能夠以一種非常簡單的方式重用你的 Java 代碼,模板,靜態(tài)資源(如 JavaScript 和 CSS 文件)。


網(wǎng)頁名稱:Play Framework框架概述
網(wǎng)站地址:http://www.dlmjj.cn/article/dpisdge.html