play!framework框架概述
業(yè)務(wù)邏輯是在域模型中層里進(jìn)行管理,客戶端無法直接調(diào)用業(yè)務(wù)邏輯代碼,客戶端是通過資源的URI來訪問域?qū)ο蟆?/p>
客戶端使用HTTP協(xié)議中提供的統(tǒng)一方法來訪問這些特定資源,并隱式調(diào)用底層的業(yè)務(wù)邏輯。
在play框架中,控制器其實就是一個java類,位于controllers包中,繼承了父類play.mvc.Controller
簡單實例:
public class Clients extends Controller {
public static void show(Long id){
Client client = Client.findById(id);
render(client);
}
public static void delete(Long id){
Client client = Client.findById(id);
client.delete();
}
}
play將所有的模板文件都放在app/views目錄下,所有頁面都是在請求時解析的。
app/views目錄說明:
Application:存放應(yīng)用主controller程序的模板
errors:存放錯誤頁面模板,例如404/500等
main.html:主頁面模板
play框架的set指令用于設(shè)置頁面的標(biāo)題,這些指令都要進(jìn)行關(guān)閉,最后一行打印歡迎信息
play框架使用render方法來處理參數(shù)的傳遞。比如我們在controller中讀取一些數(shù)據(jù),病將這些數(shù)據(jù)傳遞到view中進(jìn)行顯示。
render(hello),在模板中獲取變量用${hello}
play框架自帶很多的標(biāo)簽,但是可以自己創(chuàng)建一些,我們現(xiàn)在views目錄下創(chuàng)建名為tags的子目錄。
play框架默認(rèn)使用jQuery發(fā)送Ajax請求。也提供了jsAction標(biāo)簽透明的從控制器得到一個定義的方法。
play有一個緩存的庫,當(dāng)需要在分布式的系統(tǒng)中使用時,用的是memcached.如果不配置memcached,play會使用獨立的緩存,將數(shù)據(jù)存放在jvm的堆中。
當(dāng)你把數(shù)據(jù)放進(jìn)緩存里的時候,你不能期望數(shù)據(jù)永遠(yuǎn)保存在哪里,緩存很快,但是數(shù)據(jù)會失效,而且環(huán)迅通常只存在在內(nèi)存里(如果沒有持久化備份的話)。
所以使用緩存最好的辦法是在你不需要它的時候清空它。
緩存API是由類play.cache.Cache提供的,這個類包含了一系列的方法,可以設(shè)定,替換,得到緩存中的值。
play框架的Scala模塊
play包含了對Scala編程語言的支持,要啟用Scala支持只需要在conf/application.conf文件中配置:
module.scala=${play.path}/modules/scala
接下來就可以在已有的應(yīng)用中使用scala來編寫代碼,也可以是java和scala混合編碼。
不建議在生產(chǎn)環(huán)境中完全使用scala來編寫play應(yīng)用。
Scala編寫應(yīng)用的步驟:
創(chuàng)建應(yīng)用:
play new myApp –with scala
一旦使用這個命令創(chuàng)建應(yīng)用后,controllers包中的Application.java就變成了Application.scala文件
Scala應(yīng)用可以直接讓某個方法返回值
def index = “
hello world
”處理Action的參數(shù)
def index(name:String) =
hello {name}
還可以定義默認(rèn)值
def index(name:String = “Guest”) =
hello {name}
如果使用了默認(rèn)值,那么一旦請求中不包含指定的參數(shù),play會自動用默認(rèn)值替代。
使用play發(fā)送郵件:
可以使用play.libs.Mail工具類發(fā)送郵件。
bc.Mail.send(“sender@abc.com”,”recipient@abc.com”,”Subject”,”Message”);
play不是一個需要添加到Servlet容器中的類庫,而是一個可以獨立運行你的應(yīng)用的全棧式Java框架。
總結(jié)
以上是生活随笔為你收集整理的play!framework框架概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala 类型的类型(一)
- 下一篇: 查看git版本的cmd命令