日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Play framework简介

發(fā)布時間:2025/4/14 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Play framework简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文翻譯自Play官方文檔。原文見:http://www.playframework.org/documentation/1.1.1/main

Play Framework是一個Rails風(fēng)格的Full-stack Java Web框架。

MVC模型

Play應(yīng)用遵循Web架構(gòu)使用的MVC架構(gòu)模式。

它將應(yīng)用分離到不同的層中:表現(xiàn)層(Presentation)和模型層(Model)。表現(xiàn)層進一步分為視圖(View)和控制器(Controller)。

  • Model?是應(yīng)用所處理信息的領(lǐng)域表述(Domain-Specific Representation)。絕大多數(shù)應(yīng)用使用持久化機制如數(shù)據(jù)庫存儲數(shù)據(jù)。但是MVC并沒有特別提到數(shù)據(jù)訪問層,因為它屬于下層,由模型封裝。
  • View?將模型渲染成適合交互的表單,通常是用戶界面。一個模型可有多個不同目的視圖。Web應(yīng)用中,View通常以HTML,XML或JSON形式呈現(xiàn),也可能是二進制的Chart。
  • Controller處理事件(通常是用戶動作),并對模型做相應(yīng)改變。Web應(yīng)用中,事件通常是HTTP請求:Controller監(jiān)聽HTTP請求,從其中提取數(shù)據(jù),如查詢字符串參數(shù),請求頭,然后改變下層模型對象。

Play將此三層分在app目錄下的不同package中。

app/controllers

一個Controller就是一個Java 類,它的靜態(tài)公共方法則是動作(Action)。動作是接收HTTP請求后的Java處理入口點。Controller類實際是面向過程的,非OO。Action從HTTP請求中提取數(shù)據(jù),讀或更新Model對象,然后返回一個包裝成HTTP響應(yīng)(HTTP Response)的結(jié)果。

app/models

Model是一組具有所有OO特性的Java類。包含數(shù)據(jù)結(jié)構(gòu)和應(yīng)用可使用的操作。(譯注:即充血模型)。支持通過JPA持久化。

app/views

應(yīng)用的視圖由Play的模板系統(tǒng)生成。Controller從Model獲取數(shù)據(jù),然后使用模板呈現(xiàn)它。此package包含HTML,XML等模板文件,用作動態(tài)生成模型的表述(Representation)。

請求生命周期

Play是完全無狀態(tài)的(stateless),且僅面向請求-應(yīng)答(Request-Response)。所有請求遵循相同路徑:

  • 框架收到一個HTTP請求
  • Router匹配請求和Controller、Action,執(zhí)行動作方法。
  • 應(yīng)用代碼執(zhí)行
  • 繪制模型,呈現(xiàn)視圖
  • 動作方法的結(jié)構(gòu)作為HTTP響應(yīng)返回。
  • 應(yīng)用程序布局

    app目錄

    包含所有可執(zhí)行的工件:Java源代碼和視圖模板。其下有三個標(biāo)準(zhǔn)package,每個代表MVC的一層。你也能添加你自己的包,如示例的utils包。

    View pacakge可以在分子packages:

    • tags?存儲應(yīng)用的ta。如可重用的模板片段。
    • 一個Controller一個view目錄,按慣例,每個Controller的相關(guān)模板存儲在自己的子目錄中。

    .class文件在哪兒?

    Play在運行時編譯Java源代碼,并將編譯的類緩存在tmp\bytecode目錄下。Play應(yīng)用的可執(zhí)行工件時.java源文件,不是已編譯的.class(譯注:包括jar文件)。

    public目錄

    存儲靜態(tài)的、由Web服務(wù)器直接處理的資源。分為三個子目錄:images,stylesheets和javascripts,分別放圖片,css和js。

    conf目錄

    包含應(yīng)用的所有配置文件。兩個必須文件為:

    • application.conf: 應(yīng)用主配置文件,包含所有標(biāo)準(zhǔn)的配置選項。
    • routes:url路由規(guī)則定義文件。

    此目錄包含在Java ClassPath中。

    lib目錄

    存放應(yīng)用依賴的標(biāo)準(zhǔn)Java類庫。此目錄自動添加到Java classpath中。

    開發(fā)生命周期

    使用Play開發(fā)時沒有編譯,打包和部署這些階段,代之兩個不同環(huán)境:用于開發(fā)階段的DEV模式和用戶部署階段的PROD模式。

    Java源代碼在運行時編譯和加載。如果Java源文件在應(yīng)用運行時發(fā)生改變,代碼會重新編譯并熱加載(hot-swapped)到JVM中。模板文件也是如此。

    關(guān)于DEV/PROD模式

    通過application.mode配置屬性切換DEV或PROD。DEV模式下,Play會檢查并在必要時熱加載。PROD模式為產(chǎn)品做了優(yōu)化:Java源文件和模板僅編譯一次。

    調(diào)試

    開發(fā)模式下通過JDPA連接到8000端口遠(yuǎn)程調(diào)試。(譯注:原文此處很簡略,實際上可遠(yuǎn)程調(diào)試,也可本地調(diào)試)


    總結(jié)

    以上是生活随笔為你收集整理的Play framework简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。