这篇文章将帮助您在Cloud Foundry上使用MongoDB构建Spring 3.1 Web应用程序。 除了推动Cloud Foundry之外,您还可以使用MongoDB实例在本地环境中进行开发。

目标

此博客发布的目标是在本地构建应用程序,然后发布到本地Cloud Foundry实例。 我们将利用Cloud Foundry运行时和新的Spring Profiles

设定

  1. 使用Cloud Foundry创建帐户( https://www.cloudfoundry.com/micro )
  2. 按照说明设置您自己的Micro Cloud
    1. 我使用VMWare的播放器
    2. 验证微云控制台匹配的“ vmc信息”
  3. 下载MongoDB(至少2.0版)
  4. 安装并熟悉Maven 3( http://maven.apache.org )
  5. 熟悉Spring 3.1,Spring Data和Spring MongoDB
  6. 克隆或下载源代码( https://github.com/mike-ensor/first-cloud-app )
  7. 使用以下命令在本地运行应用程序:
    mvn clean package cargo:run -DskipTests
  8. 转到http:// localhost:8080 / home

个人资料

Spring 3.1中的新功能是环境配置文件,开发人员可以根据环境参数激活多组Bean。 我发现了几个“ 陷阱 ”,一个是使用概要文件对bean的无证订购。

看一下data-services.xml 。 请注意,之前如何定义MongoTemplate。 这违反了我的直觉,因为MongoTemplate引用了在MongoTemplate定义下方定义的MongoFactory对象。

第二个“陷阱”来自何时何地设置参数以启用Spring的配置文件。 文档和博客未明确提及开发人员必须指定活动的配置文件。 文档暗示“ 默认 ”默认情况下处于活动状态,但事实并非如此。 为了激活默认配置文件,我将其添加为货物设置中的系统属性。 (只要它是系统环境属性,就可以随时随地设置它)。 看一下第40行周围的pom.xml文件,以获取本地Maven属性,然后看一下253行附近的环境变量。

本地开发与云开发

与Cloud Foundry进行交互的主要目标之一是,我希望有一个本地开发环境来加速和简化开发并通过调试降低复杂性。 请注意
data-services.xml中有一个“云”配置文件和一个“默认”文件。 “默认”概要文件的要点是具有在本地环境中构造的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

现在您已经拥有了Webapp的本地运行实例,您将注意到该工件称为“ first-cloud-app.war ”,您可以在“ / target”文件夹中找到该工件。 推送到Cloud Foundry实例时,这是一个问题,因为名称不能包含任何非字母字符。 Cloud Foundry的vmc工具是从负责开源PaaS服务的VCAP开源项目构建的。 另一个PaaS服务包括App Fog,它使您基本上可以使用相同的命令,但是将“ vmc”替换为“ af”。 两种服务都是命名问题的受害者。

为了解决命名问题,我创建了一个Maven配置文件 ,将WAR工件构建为“ mikeensor.war”。 请更改此名称以匹配您的应用程序名称,因为您没有要发布的用户名/密码(或DNS)要发布到我的微型实例。 该名称将需要适合URL模式http:// < applicationname >。 .cloudfoundry.me。

要发布到本地Cloud Foundry微型实例,请转到根文件夹并键入以下内容。 (这是假设您的微型实例正在运行,并且没有“红色”错误。

mvn clean package -Pcloud
vmc push <application name> -path target/

(如果您之前已经推送过,则需要输入:

vmc update <application name> -path target/

注意:可以将Maven插件用于Cloud Foundry,但是,在不更改工件名称的情况下,我仍然无法使其正常工作。 启用并连接到服务

您必须创建一个或多个服务,以便您的应用程序可以绑定到数据源。 当将应用程序加载到Cloud Foundry中时,VCAP(vmc)应用程序处理配置的工作方式。 它通过在命名空间配置元素中使用的环境变量来执行此操作。

在我的示例中,我通过输入以下内容创建了MongoDB服务:

vmc create-service mongodb --name <what you want to call your instance>

我将其命名为“ second”(因为我已经创建了“ first”),您将看到在data-services.xml中 ,云XML配置引用了服务的名称。

请注意,如果您有多个MongoDB实例,则要使用其他实例时,需要进行一些Spring配置(@Qualifier)。 此博客文章未涵盖此内容。

现在,您需要将服务“绑定”到您的应用程序。 通过键入以下内容来完成:

vmc bind-service <name above> <application name>

测试出来

您应该可以转到http:// 。 .cloudfoundry.me / home(例如:http://mikeensor.mikeensor.cloudfoundry.me/home)

恭喜你! 您不仅应该成功地部署到绑定到MongoDB实例的Cloud Foundry(微型实例),而且还应该能够在您的本地环境中运行! 如果有时间,我将尝试添加更详细的功能,例如多种类型的存储,并在发现它们时发布其他“陷阱”。

参考: Spring 3.1 + Cloud Foundry +我们的JCG合作伙伴 Mike的本地开发 (在Mike的网站博客上)。

翻译自: https://www.javacodegeeks.com/2012/11/spring-3-1-cloud-foundry-and-local-development.html

Spring 3.1,Cloud Foundry和本地开发相关推荐

  1. cloud foundry_Spring 3.1,Cloud Foundry和本地开发

    cloud foundry 这篇文章将帮助您在Cloud Foundry上使用MongoDB构建Spring 3.1 Web应用程序. 除了推动Cloud Foundry之外,您还可以使用MongoD ...

  2. cloud foundry云原生开发工程师考试

    文章目录 课程时间 Linux基金会 云计算的基础 Linux基金会活动 培训场地 Linux基础培训产品 Linux基金会认证 培训/认证防火墙 章概述 命令行接口 CF API Documenta ...

  3. spring roo_使用Spring Roo进行快速云开发–第2部分:VMware Cloud Foundry

    spring roo Spring Roo是在Java平台上提供快速应用程序开发的工具. 我已经解释了何时使用它: http : //www.kai-waehner.de/blog/2011/04/0 ...

  4. 使用Spring Roo进行快速云开发–第2部分:VMware Cloud Foundry

    Spring Roo是在Java平台上提供快速应用程序开发的工具. 我已经解释了何时使用它: http : //www.kai-waehner.de/blog/2011/04/05/when-to-u ...

  5. VMware Cloud Foundry –见解

    什么是Cloud Foundry? (What is Cloud Foundry ?) Cloud Foundry is an open source (free) cloud computing p ...

  6. Cloud Foundry BOSH 简介

    Cloud Foundry BOSH 简介 编译自http://www.think-foundry.com/tag/cloud-foundry-bosh-stemcell/.编译时,去掉了一些扩展知识 ...

  7. cloud foundry_将Spring Boot应用程序绑定到Cloud Foundry中的服务的方法

    cloud foundry 如果要试用Cloud Foundry ,最简单的方法是下载出色的PCF开发人员或在Pivotal Web Services站点上创建试用帐户. 其余文章假定您已经安装了Cl ...

  8. 将Spring Boot应用程序绑定到Cloud Foundry中的服务的方法

    如果您想试用Cloud Foundry ,最简单的方法是下载出色的PCF开发人员或在Pivotal Web Services站点上创建试用帐户. 文章的其余部分假定您已经安装了Cloud Foundr ...

  9. 使用Spring-Cloud将Spring Boot应用程序部署到Cloud Foundry

    我有一个基于Spring Boot的小型应用程序 ,该应用程序使用Postgres数据库作为数据存储. 我想记录将示例应用程序部署到Cloud Foundry的步骤 . Spring Boot参考指南 ...

最新文章

  1. 上不了名校?可以在 GitHub 上读他们的课程
  2. 08-dispatch_apply
  3. 【Python】数据提取xpath和lxml模块(豆瓣电影排行榜的爬虫)
  4. [汇编] 001基础知识-什么是汇编
  5. 分数优先遵循志愿php源码_天津中考录取16字原则:分数优先、遵循志愿、一次投档、额满为止...
  6. 重新格式化NameNode后,DataNode启动不起来问题解决
  7. linux下设置mysql不区分大小写
  8. 【STM32】SYSTEM文件夹介绍,delay,sys,usart
  9. 【推荐系统】基于MovieLens数据集实现的协同过滤算法
  10. LightOJ - 1140 How Many Zeroes?
  11. pytest测试框架(二)---fixture介绍
  12. Ubuntu搭建DNS主从服务器
  13. 苹果Mac时间日程管理工具:Things 备注支持 Markdown
  14. [译]使用深度学习方法实现面部表情包识别
  15. 海湾标准汉字码表查询_标准汉字查询软件下载-国家标准信息交换汉字编码查询系统2017官方最新版-东坡下载...
  16. HTML5绘制八大行星加入字体,html5中用canvas画八大行星围绕太阳转
  17. 与合作伙伴合作,如何正确的“吵架”
  18. 经典软件典范龙卷风网络收音机功能详解
  19. Firefox火狐浏览器插件大全
  20. STM32 Keil工程中使用abs函数报警告 warning: #223-D: function abs declared implicitly

热门文章

  1. python cmd闪退_使用cmd python模块时,如何使程序正常崩溃?
  2. html 中一个格子拆分成两个_一个效果惊人的数字游戏
  3. 混合多云架构_使用混合多云每个人都应避免的3个陷阱(第4部分)
  4. javafx 项目_JavaFX,Jigsaw项目和JEP 253
  5. ArrayList clone()– ArrayList深拷贝和浅拷贝
  6. q7goodies事例_Java 8 Friday Goodies:SQL ResultSet流
  7. nashorn 性能_Nashorn简介
  8. 带有Oracle Digital Assistant和Fn Project的会话式UI
  9. apache mahout_使用Apache Mahout创建在线推荐系统
  10. eventbus多个订阅_番石榴的EventBus –简单的发布者/订阅者