偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Play Framework框架概述

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

有別于其他臃腫的企業(yè)級(jí)Java框架,簡(jiǎn)潔的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 是一個(gè)純 Java 的框架,它讓你保持使用你喜歡的開發(fā)工具和類庫。如果你已經(jīng)是一個(gè)使用 Java 平臺(tái)的開發(fā)者,

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


修改 bug 后自動(dòng)重新加載

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

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

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

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

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

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


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

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

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

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

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


從 HTTP 到代碼的映射

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

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

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

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

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


高效的模板引擎

我們很喜歡 JSP 和 表達(dá)式語言背后的思想,但是為什么我們需要這么多的配置文件才能創(chuàng)建一個(gè)標(biāo)簽庫呢?為什么我們不能完全地訪問對(duì)象模型呢? JSP 有很多的約束,這的確令人沮喪。這就是為什么我們創(chuàng)建了一個(gè)自定義的模板系統(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. <c:choose>  
  5.     <c:when test="${emails.unread != null && fn:size(emails.unread)}">  
  6.         You have ${fn:size(emails.unread)} unread email(s)!  
  7.     </c:when>  
  8.     <c:otherwise>  
  9.         You have no unread emails!  
  10.     </c:otherwise>  
  11. </c:choose> 

我們認(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 )是一個(gè)簡(jiǎn)潔的 Java 版的 ORM 框架,如果你使用過 JPA ,你會(huì)驚訝于它在 Play 框架中變得如此簡(jiǎn)單。不需要任何配置,Play 會(huì)自動(dòng)啟動(dòng) JPA 實(shí)體管理器,并在代碼發(fā)生修改時(shí)自動(dòng)地同步。

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

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

 


測(cè)試驅(qū)動(dòng)開發(fā)(如果你喜歡)

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


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

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

  • 支持 JDBC 的關(guān)系數(shù)據(jù)庫
  • 基于 Hibernate ( JPA 接口 ) 的對(duì)象-關(guān)系映射框架( ORM )
  • 集成的緩存支持,易用的分布式緩存系統(tǒng)( memcached )
  • 簡(jiǎn)單直接的提供 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 ),利用它你能夠以一種非常簡(jiǎn)單的方式重用你的 Java 代碼,模板,靜態(tài)資源(如 JavaScript 和 CSS 文件)。 

原文鏈接:http://play-framework.herokuapp.com/zh/overview

【編輯推薦】

  1. Play Framework hotswap及源碼分析
  2. Play Framework總結(jié)性介紹
  3. Play Framework 2.0 RC1發(fā)布 Java Web框架
  4. Play Framework介紹:Hello World
  5. Play Framework介紹:主要概念

 

 

責(zé)任編輯:林師授 來源: Playframework中文小站
相關(guān)推薦

2012-02-23 13:48:16

JavaPlay Framew

2012-02-22 17:23:51

JavaPlay Framew

2011-09-09 17:01:42

框架

2012-03-14 09:29:00

Play framewJava

2012-02-24 09:53:24

JavaPlay Framew

2012-02-20 14:26:48

JavaPlay Framew

2012-02-20 14:20:44

JavaPlay Framew

2012-03-14 12:29:55

JavaPlay Framwo

2012-02-23 12:53:40

JavaPlay Framew

2012-02-22 16:06:42

2012-02-22 15:51:22

JavaPlay Framew

2012-02-23 11:06:18

JavaPlay FramewPlay!

2012-02-24 10:57:43

2012-02-24 11:31:09

JavaPlay Framew

2011-11-08 10:36:42

Java

2012-02-20 14:41:30

JavaPlay Framew

2023-08-24 10:08:06

2012-02-29 10:54:21

JavaPlay Framew

2012-02-23 13:59:28

Play FramewJava

2009-06-19 17:17:40

Spring框架Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)