javascript
cloud foundry_Spring 3.1,Cloud Foundry和本地开发
cloud foundry
這篇文章將幫助您在Cloud Foundry上使用MongoDB構(gòu)建Spring 3.1 Web應用程序。 除了推動Cloud Foundry之外,您還可以使用MongoDB實例在本地環(huán)境中進行開發(fā)。
目標
此博客發(fā)布的目標是在本地構(gòu)建應用程序,然后發(fā)布到本地Cloud Foundry實例。 我們將利用Cloud Foundry運行時和新的Spring Profiles
建立
個人資料
Spring 3.1中的新功能是環(huán)境配置文件,開發(fā)人員可以使用該配置文件根據(jù)環(huán)境參數(shù)激活Bean組。 我發(fā)現(xiàn)了幾個“ 陷阱 ”,一個是使用概要文件對bean的無證訂購。
看一下data-services.xml 。 請注意,之前如何定義MongoTemplate。 這違反了我的直覺,因為MongoTemplate引用了MongoFactory對象,該對象在MongoTemplate定義下定義。
第二個“陷阱”來自何時何地設(shè)置參數(shù)以啟用Spring的配置文件。 文檔和博客沒有明確提到開發(fā)人員必須指定活動的配置文件。 文檔暗示“ 默認 ”默認情況下處于活動狀態(tài),但事實并非如此。 為了激活默認配置文件,我將其添加為貨物設(shè)置中的系統(tǒng)屬性。 (只要它是系統(tǒng)環(huán)境屬性,就可以隨時隨地設(shè)置它)。 看一下第40行附近的pom.xml文件,以獲取本地Maven屬性,然后看一下253行附近的環(huán)境變量。
本地開發(fā)與云開發(fā)
與Cloud Foundry進行交互的主要目標之一是,我希望有一個本地開發(fā)環(huán)境來加速和簡化開發(fā)并通過調(diào)試降低復雜性。 請注意
data-services.xml中有一個“云”配置文件和一個“默認”文件。 “默認”概要文件的要點是具有在本地環(huán)境中構(gòu)造的bean。 您可以看到MongoFactory有兩種定義,一種使用Spring Data MongoDB的XML名稱空間,另一種使用CloudFoundry Runtime的名稱空間。 我不會講解為什么它們會如此工作,因此,如果您需要信息,請參閱http://blog.springsource.org/2011/04/12/cloud-foundry-for-spring-developers/和http://blog.springsource.org/2011/11/09/using-cloud-foundry-services-with-spring-applications-part-3-the-cloud-namespace/
推向Cloud Foundry
現(xiàn)在您已經(jīng)擁有了Webapp的本地運行實例,您將注意到該工件稱為“ first-cloud-app.war ”,您可以在“ / target”文件夾中找到該工件。 推送到Cloud Foundry實例時,這是一個問題,因為名稱不能包含任何非字母字符。 Cloud Foundry的vmc工具是從負責開源PaaS服務的VCAP開源項目構(gòu)建的。 另一個PaaS服務包括App Fog,它使您基本上可以使用相同的命令,但是將“ vmc”替換為“ af”。 兩種服務都是命名問題的受害者。
為了解決命名問題,我創(chuàng)建了一個Maven配置文件云 ,將WAR工件構(gòu)建為“ mikeensor.war”。 請更改此名稱以匹配您應用程序的名稱,因為您沒有要發(fā)布的用戶名/密碼(或DNS)要發(fā)布到我的微型實例。 該名稱必須適合URL模式http:// < applicationname >。 .cloudfoundry.me。
要將其發(fā)布到本地Cloud Foundry微型實例,請轉(zhuǎn)到根文件夾并鍵入以下內(nèi)容。 (這是假設(shè)您的微型實例正在運行,并且沒有“紅色”錯誤。
mvn clean package -Pcloud vmc push <application name> -path target/(如果您之前已經(jīng)推送過,則需要輸入:
vmc update <application name> -path target/注意:可以將Maven插件用于Cloud Foundry,但是,在不更改工件名稱的情況下,我仍然無法使其正常工作。 啟用并連接到服務
您必須創(chuàng)建一個或多個服務,以便您的應用程序可以綁定到數(shù)據(jù)源。 當將應用程序加載到Cloud Foundry中時,VCAP(vmc)應用程序處理配置的工作方式。 它通過在命名空間配置元素中使用的環(huán)境變量來執(zhí)行此操作。
在我的示例中,我通過輸入以下內(nèi)容創(chuàng)建了MongoDB服務:
vmc create-service mongodb --name <what you want to call your instance>我將其命名為“ second”(因為我已經(jīng)創(chuàng)建了“ first”),您將看到在data-services.xml中 ,云XML配置引用了服務的名稱。
請注意,如果您有多個MongoDB實例,則要使用其他實例時,需要進行一些Spring配置(@Qualifier)。 此博客文章未涵蓋此內(nèi)容。
現(xiàn)在,您需要將服務“綁定”到您的應用程序。 通過鍵入以下內(nèi)容來完成:
vmc bind-service <name above> <application name>
測試出來
您應該可以轉(zhuǎn)到http:// 。 .cloudfoundry.me / home(例如:http://mikeensor.mikeensor.cloudfoundry.me/home)
恭喜你! 您不僅應該已成功部署到綁定到MongoDB實例的Cloud Foundry(微型實例),而且還應該能夠在您的本地環(huán)境中運行! 如果有時間,我將嘗試添加更詳細的功能,例如多種類型的存儲,并在找到它們時發(fā)布其他“陷阱”。
參考: Spring 3.1 + Cloud Foundry +我們JCG合作伙伴 Mike的本地開發(fā) ,在Mike的站點博客上進行。
翻譯自: https://www.javacodegeeks.com/2012/11/spring-3-1-cloud-foundry-and-local-development.html
cloud foundry
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的cloud foundry_Spring 3.1,Cloud Foundry和本地开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓变声器(变声器安卓版)
- 下一篇: linux中for循环语句(linux中