名扬数据:部署基于Spring与数据库的应用到CloudFoundry

就像SpringSourc网站说的那样在注册申请到Cloud Foundry beta账号后,第一件事请就是STS for Eclips中安装CloudFoundri支持。这里有一份博客详细的说明了如何装置,这里就不在赘述。将Spring应用安排到CloudFoundry.com很简单。>

为了布置运行一个使用数据库的应用,要比布置一个单独的应用多一点步骤,但也只是一点。

    为了给应用分配数据库资源,首先必需声明使用的哪个数据源。Eclips中打开Cloud Foundry serv点击add按钮打开servic控制盘。

    接下来的界面中,选择数据源的类型和名称。点击"Finish"按钮,这样,数据源就注册了

    注册一个数据源后,需要告诉应用使用哪个数据源。简单的直接将数据源拖到Application Servic面板。

以上就是服务器所需要的所有的配置。布置应用之前,还需要一些改变以指定哪里需要数据源。

因为我安排的一个Spring 应用,需要改动 application context文件将数据源指定到Cloud Foundri数据库,而不是指向外地。Cloud Foundri云上使用数据库带来的好处就是不用再去配置数据库了所需要的就是配置一下应用中的servlet-context.xml文件中的数据源。

这里看一下本地的配置:

对于外地的布置来讲配置通常看起来像这样:

    <bean id="dataSource" 

     class="org.springframework.jdbc.datasource.DriverManagerDataSource"   

    p:driverClassName="${jdbc.driverClassName}" 

    p:url="${jdbc.url}" /> 

而对于在Cloud Foundri上的MySQL数据库配置是这样:

    <cloud:data-source id="dataSource" /> 

Spring3.1包括了一个新特性允许这些配置放在同一个context文件中,但是Spring3中并没有这个特性,需要将规则的数据源配置(保守的和新的cloud data-sourc方式配置数据源中选择其中一种。

要使用新的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 Foundri支持。可以通过在应用的pom.xml文件中添加以下依赖的方式添加Cloud Foundri支持。

    <!-- 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 Foundri应用就可以通过STS for eclips控制应用的安排,启动和停止。