部署基于Spring與數據庫的應用到CloudFoundry
將Spring應用部署到CloudFoundry.com很簡單,就像SpringSource網站說的那樣在注冊申請到Cloud Foundry beta賬號后,第一件事請就是在STS for Eclipse中安裝CloudFoundry的支持。這里有一份博客詳細的說明了如何安裝,這里就不在贅述。
為了部署運行一個使用數據庫的應用,要比部署一個單獨的應用多一點步驟,但也只是一點。
- 為了給應用分配數據庫資源,首先必須聲明使用的是哪個數據源。在Eclipse中打開Cloud Foundry server點擊add按鈕打開service控制盤。
- 在接下來的界面中,選擇數據源的類型和名稱。點擊"Finish"按鈕,這樣,數據源就注冊了。
- 在注冊一個數據源后,需要告訴應用使用哪個數據源。簡單的直接將數據源拖到Application Services面板。
以上就是服務器所需要的所有的配置。在部署應用之前,還需要一些改變以指定哪里需要數據源。
因為我部署的是一個Spring 應用,我需要改動 application context文件將數據源指定到Cloud Foundry的數據庫,而不是指向本地。在Cloud Foundry的云上使用數據庫帶來的好處就是,你不用再去配置數據庫了,你所需要的就是配置一下應用中的servlet-context.xml文件中的數據源。
這里看一下本地的配置:
對于本地的部署來講配置通常看起來像這樣:
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource"
- p:driverClassName="${jdbc.driverClassName}"
- p:url="${jdbc.url}" />
而對于在Cloud Foundry上的MySQL數據庫配置是這樣:
- <cloud:data-source id="dataSource" />
Spring3.1包含了一個新特性允許這些配置放在同一個context文件中,但是在Spring3中并沒有這個特性,我們需要將規則的數據源配置(傳統的)和新的cloud data-source的方式配置數據源中選擇其中一種。
要使用新的cloud標簽,servlet-context.xml需要做相關改變引入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">
部署應用的最后一步是添加Cloud Foundry的支持。可以通過在應用的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應用就可以通過STS for eclipse控制應用的部署,啟動和停止。
OSChina.NET原創翻譯/原文鏈接