部署基于Spring與數(shù)據(jù)庫(kù)的應(yīng)用到CloudFoundry
將Spring應(yīng)用部署到CloudFoundry.com很簡(jiǎn)單,就像SpringSource網(wǎng)站說(shuō)的那樣在注冊(cè)申請(qǐng)到Cloud Foundry beta賬號(hào)后,第一件事請(qǐng)就是在STS for Eclipse中安裝CloudFoundry的支持。這里有一份博客詳細(xì)的說(shuō)明了如何安裝,這里就不在贅述。
為了部署運(yùn)行一個(gè)使用數(shù)據(jù)庫(kù)的應(yīng)用,要比部署一個(gè)單獨(dú)的應(yīng)用多一點(diǎn)步驟,但也只是一點(diǎn)。
- 為了給應(yīng)用分配數(shù)據(jù)庫(kù)資源,首先必須聲明使用的是哪個(gè)數(shù)據(jù)源。在Eclipse中打開Cloud Foundry server點(diǎn)擊add按鈕打開service控制盤。
- 在接下來(lái)的界面中,選擇數(shù)據(jù)源的類型和名稱。點(diǎn)擊"Finish"按鈕,這樣,數(shù)據(jù)源就注冊(cè)了。
- 在注冊(cè)一個(gè)數(shù)據(jù)源后,需要告訴應(yīng)用使用哪個(gè)數(shù)據(jù)源。簡(jiǎn)單的直接將數(shù)據(jù)源拖到Application Services面板。
以上就是服務(wù)器所需要的所有的配置。在部署應(yīng)用之前,還需要一些改變以指定哪里需要數(shù)據(jù)源。
因?yàn)槲也渴鸬氖且粋€(gè)Spring 應(yīng)用,我需要改動(dòng) application context文件將數(shù)據(jù)源指定到Cloud Foundry的數(shù)據(jù)庫(kù),而不是指向本地。在Cloud Foundry的云上使用數(shù)據(jù)庫(kù)帶來(lái)的好處就是,你不用再去配置數(shù)據(jù)庫(kù)了,你所需要的就是配置一下應(yīng)用中的servlet-context.xml文件中的數(shù)據(jù)源。
這里看一下本地的配置:
對(duì)于本地的部署來(lái)講配置通??雌饋?lái)像這樣:
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource"
- p:driverClassName="${jdbc.driverClassName}"
- p:url="${jdbc.url}" />
而對(duì)于在Cloud Foundry上的MySQL數(shù)據(jù)庫(kù)配置是這樣:
- <cloud:data-source id="dataSource" />
Spring3.1包含了一個(gè)新特性允許這些配置放在同一個(gè)context文件中,但是在Spring3中并沒有這個(gè)特性,我們需要將規(guī)則的數(shù)據(jù)源配置(傳統(tǒng)的)和新的cloud data-source的方式配置數(shù)據(jù)源中選擇其中一種。
要使用新的cloud標(biāo)簽,servlet-context.xml需要做相關(guān)改變引入cloud 命名空間。
- <beans xmlns="http://www.springframework.org/schema/beans"
- ... xmlns:cloud="http://schema.cloudfoundry.org/spring"
- ... http://schema.cloudfoundry.org/spring
- http://schema.cloudfoundry.org/spring/cloudfoundry-spring-0.6.xsd">
部署應(yīng)用的最后一步是添加Cloud Foundry的支持??梢酝ㄟ^(guò)在應(yīng)用的pom.xml文件中添加以下依賴的方式添加Cloud Foundry支持。
- <!-- CloudFoundry -->
- <dependency>
- <groupId>org.cloudfoundry</groupId>
- <artifactId>cloudfoundry-runtime</artifactId>
- <version>${org.cloudfoundry-version}</version>
- </dependency>
- <properties>
- <org.cloudfoundry-version>0.6.0</org.cloudfoundry-version>
- </properties>
在這些改變都OK后,Cloud Foundry應(yīng)用就可以通過(guò)STS for eclipse控制應(yīng)用的部署,啟動(dòng)和停止。
OSChina.NET原創(chuàng)翻譯/原文鏈接