摘要:對(duì)的詳細(xì)配置已經(jīng)超出了本教程的范圍,但大體上看上去像這樣然后在中加入下面一行,讓本地的反向代理能夠連接上你的應(yīng)用這才只是個(gè)開(kāi)始如果一路上你一直跟著本教程,你應(yīng)該已經(jīng)懂得如何開(kāi)發(fā)一個(gè)應(yīng)用了。
部署應(yīng)用
如今我們已經(jīng)完成了博客引擎了。讓我們來(lái)看一下一些部署Play應(yīng)用的步驟。
定義一個(gè)框架ID一般,你需要部署你的應(yīng)用到一臺(tái)跟開(kāi)發(fā)時(shí)不一樣的電腦。這臺(tái)電腦(很有可能是臺(tái)服務(wù)器)上面的Play安裝包不會(huì)是一樣的。
Play允許你給每個(gè)框架安裝包指定不同的ID,來(lái)用同一個(gè)application.conf管理不同的配置。讓我們假設(shè)應(yīng)用將部署在server01上。
一旦框架已經(jīng)安裝在服務(wù)器上,用play id來(lái)定義一個(gè)框架ID:
$ play id
并設(shè)置id為server01。現(xiàn)在我們可以在yabe的配置中定義只在服務(wù)器運(yùn)行時(shí)起效的值。
在PROD模式下設(shè)置應(yīng)用我們首先給部署版本定義application.mode變量。目前,我們一直使用DEV來(lái)實(shí)現(xiàn)熱重載,即時(shí)重新編譯Java文件,顯示錯(cuò)誤信息。在PROD模式中,Play會(huì)在啟動(dòng)時(shí)編譯所有的Java代碼和模板,而且不會(huì)檢查是否有改變。
在yabe/conf/application.conf定義:
%server01.application.mode=PROD
現(xiàn)在當(dāng)你在服務(wù)器運(yùn)行yabe,它就會(huì)自動(dòng)在PROD下啟動(dòng)。
配置MYySQL數(shù)據(jù)庫(kù)在生產(chǎn)環(huán)境中,我們將使用MySQL而不是一直在用的H2數(shù)據(jù)庫(kù)。Play提供了MySQL配套的JDBC驅(qū)動(dòng),所以我們不需要下載別的。
編輯yabe/conf/application.conf中的數(shù)據(jù)庫(kù)配置:
%server01.db=mysql:root:secret@yabe
我們現(xiàn)在調(diào)整一下Hibernate管理數(shù)據(jù)庫(kù)模式的方式。如果Java模型變動(dòng)時(shí),Hibernate能夠自動(dòng)更新數(shù)據(jù)庫(kù)模式,那是再好不過(guò)的。
修改jpa.ddl配置鍵:
%server01.db=mysql:root:secret@yabe
不過(guò)這么做恐怕會(huì)導(dǎo)致不可預(yù)料的后果,畢竟,在運(yùn)行時(shí)吧數(shù)據(jù)庫(kù)的安全交給未知的事物,這不是個(gè)好主意。如果你不希望Hibernate自動(dòng)更新數(shù)據(jù)庫(kù),修改jpa.ddl配置鍵為validate:
%server01.jpa.ddl=validate配置HTTP服務(wù)器
目前我們僅僅是把80端口作為內(nèi)置HTTP服務(wù)器的默認(rèn)端口。但是這樣做一臺(tái)服務(wù)器上只能運(yùn)行一個(gè)Play應(yīng)用。如果我們需要在一臺(tái)服務(wù)器上運(yùn)行不同的應(yīng)用(不過(guò)使用的是不同的IP地址),我們需要使用一個(gè)HTTP服務(wù)器作為反向代理。
你可以選擇喜歡的HTTP服務(wù)器并配置其作為反向代理。這里我們選擇輕量級(jí)的lighttpd作為例子。
對(duì)lighttpd的詳細(xì)配置已經(jīng)超出了本教程的范圍,但大體上看上去像這樣:
server.modules = ( "mod_access", "mod_proxy", "mod_accesslog" ) … $HTTP["host"] =~ "www.yabe.com" { proxy.balance = "round-robin" proxy.server = ( "/" => ( ( "host" => "127.0.0.1", "port" => 9000 ) ) ) }
然后在application.conf中加入下面一行,讓本地的反向代理能夠連接上你的Play應(yīng)用:
%server01.XForwardedSupport=127.0.0.1這才只是個(gè)開(kāi)始
如果一路上你一直跟著本教程,你應(yīng)該已經(jīng)懂得如何開(kāi)發(fā)一個(gè)Play應(yīng)用了。你學(xué)到了Play開(kāi)發(fā)所需的大部分概念。
但有許多特性我們還沒(méi)談?wù)摰?,特別是跟Web服務(wù)相關(guān)的,比如JSON或XML。Play還有一些帶來(lái)更多特性的模塊沒(méi)有講到。并且Play本身也在不斷發(fā)展著。
如果你認(rèn)為Play能夠使得你的開(kāi)發(fā)如虎添翼,現(xiàn)在把握機(jī)會(huì)開(kāi)始吧!
謝謝收看!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64093.html
摘要:確保你的文本編輯器已經(jīng)做了相應(yīng)的配置。第一個(gè),會(huì)自動(dòng)監(jiān)測(cè)源代碼的改變并在運(yùn)行時(shí)自動(dòng)重載。檢查下面的一行是否出現(xiàn)在應(yīng)用日志中使用版本控制系統(tǒng)來(lái)追蹤變化當(dāng)你開(kāi)發(fā)一個(gè)項(xiàng)目時(shí),最好使用版本控制系統(tǒng)來(lái)存儲(chǔ)你的源代碼。 Play是一個(gè)Java Web敏捷開(kāi)發(fā)的框架http://www.playframework.com/documentation/1.2.7/home 之所以要翻譯這個(gè)教程,是因...
摘要:完成應(yīng)用測(cè)試我們已經(jīng)完成了我們想要?jiǎng)?chuàng)建的博客引擎。當(dāng)然我們已經(jīng)完成了測(cè)試所有模型層的功能。評(píng)估代碼覆蓋率當(dāng)然我們還沒(méi)有完成應(yīng)用所需的所有測(cè)試用例。如你所見(jiàn),我們遠(yuǎn)遠(yuǎn)沒(méi)有完成對(duì)應(yīng)用的全面測(cè)試。 完成應(yīng)用測(cè)試 我們已經(jīng)完成了我們想要?jiǎng)?chuàng)建的博客引擎。不過(guò)這個(gè)項(xiàng)目尚未完全結(jié)束。為了保證代碼的質(zhì)量,我們需要添加更多的測(cè)試。 當(dāng)然我們已經(jīng)完成了測(cè)試所有模型層的功能。所以博客引擎的核心功能已經(jīng)被...
摘要:國(guó)際化和本地化完成了博客引擎后,我們來(lái)考慮額外的一件事應(yīng)用的國(guó)際化和語(yǔ)言的本地化。國(guó)際化和本地化我們將分兩步討論,先是國(guó)際化,再是本地化。實(shí)際上,兩者是同步進(jìn)行的你在國(guó)際化的同時(shí),往往也是在本地化。 國(guó)際化和本地化 完成了博客引擎后,我們來(lái)考慮額外的一件事:Web應(yīng)用的國(guó)際化和語(yǔ)言的本地化。雖然我們可以一開(kāi)始就做這件事,但是最好還是先完成該應(yīng)用的單一語(yǔ)言版本,然后再添加其他語(yǔ)言的支持...
摘要:通過(guò)來(lái)實(shí)現(xiàn)一個(gè)基本的管理面板目前,我們還沒(méi)法使用博客的來(lái)寫(xiě)新的文章,或修改評(píng)論。提供了一個(gè)即開(kāi)即用的模塊,可以快速生成一個(gè)基本的管理面板。這是因?yàn)槟J(rèn)是以的輸出來(lái)得到一個(gè)模型對(duì)象的表示。在本教程的最后一章,你會(huì)學(xué)到關(guān)于本地化信息的更多東西。 通過(guò)CRUD來(lái)實(shí)現(xiàn)一個(gè)基本的管理面板 目前,我們還沒(méi)法使用博客的UI來(lái)寫(xiě)新的文章,或修改評(píng)論。Play提供了一個(gè)即開(kāi)即用的CRUD模塊,可以快速...
摘要:設(shè)置驗(yàn)證碼任何人都可以在我們的博客下發(fā)布評(píng)論,所以我們需要避免非人類(lèi)用戶(hù)來(lái)擾亂秩序。一個(gè)簡(jiǎn)單的防范方法是設(shè)置驗(yàn)證碼。然后我們修改表單來(lái)顯示驗(yàn)證碼,并把寫(xiě)入隱藏的域里面。檢查驗(yàn)證碼功能是否完成了。 設(shè)置驗(yàn)證碼 任何人都可以在我們的博客下發(fā)布評(píng)論,所以我們需要避免非人類(lèi)用戶(hù)來(lái)擾亂秩序。一個(gè)簡(jiǎn)單的防范方法是設(shè)置驗(yàn)證碼。 生成驗(yàn)證碼 如何利用Play框架來(lái)生成驗(yàn)證碼?簡(jiǎn)單來(lái)說(shuō),我們需要增...
閱讀 3312·2023-04-25 14:35
閱讀 3426·2021-11-15 18:00
閱讀 2583·2021-11-12 10:34
閱讀 2504·2021-11-11 16:54
閱讀 3488·2021-10-08 10:12
閱讀 2770·2021-09-06 15:02
閱讀 3329·2021-09-04 16:48
閱讀 2806·2019-08-29 14:02