cloud foundry_Spring 3.1,Cloud Foundry和本地开发

cloud foundry

这篇文章将帮助您在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引用了MongoFactory对象,该对象在MongoTemplate定义下定义。

第二个“陷阱”来自何时何地设置参数以启用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

cloud foundry

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中continue用法案例_Python continue语句实例用法

Python continue语句&#xff1a; 当执行到 continue 语句时&#xff0c;将不再执行本次循环中 continue 语句接下来的部分&#xff0c;而是继续下一次循环。 lst [7,8,9,4,5,6] for i in range(len(lst)): if lst[i] 9: continue #当运行到 continue 语句时&#xff0c;不执…

eclipse中查看某个方法(函数)被谁调用

用了好久一直不知道eclipse中如何实现vs中查找所有引用的功能&#xff0c;今天终于发现了哈哈 选中要查找的方法名&#xff0c;右键->References->Workspace 可以定位到具体的调用位置&#xff0c;快捷键CtrlShiftG&#xff0c;在Search中就会出现调用方法 或者是 右键-&…

ubuntu ln软连接硬连接

软连接:相当于windows的快捷方式 硬连接&#xff1a;又创建了一个名字指向同一个内存区&#xff0c;相当于又复制了一个同样的内容 ln -s 1.txt 2.txt 将文件1.txt建立2.txt软连接 相当于快捷方式 ln 1.txt 3.txt 将文件1.txt建立3.txt硬连接,

一个简单的Map Iterator性能测试

Java Map性能有很多方面可以衡量&#xff0c;但是关键的一个是简单的单线程扫描。 这是一些针对Iterators和Java 8 Map.forEach()简单测试代码&#xff0c;以及一些图形结果。 1.性能测试困难 性能测试是一项非常困难的工作&#xff0c;精确的可重复测试需要Java微基准测试线束…

小数点后保留2位小数的正则表达式

一、前提 整数和小数&#xff0c;保留两位小数的正则表达式&#xff1a; 具体什么意思呢  ^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$ 二、知识点 1、首先从写法上可以看出&#xff0c;使用了显式定义正则表达式的语法&#xff0c;因为其中存在对字符串"\"&…

python字符串是什么_python字符串表示什么

python的字符串就是表示一串字符&#xff0c;字符可以是中文&#xff0c;英文或者数字&#xff0c;或者混合的文本。 python字符串的几种表达方式 1 使用单引号扩起来字符串>>> my python lession #以单引号将字符串扩起来 my python lession >>> a my pyth…

PgSql备份pg_dump与还原手记pg_restore(转)

备份&#xff1a;pg_dump -h localhost -p 5432 -U tradesns -W -F c -b -v -f "/home/tradeworkwangbin/us2010.backup" us2010 恢复&#xff1a;pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v "/root/us2010.backup" 真没有想到&…

ubuntu ls命令

ls 显示当前文件夹下文件 ls -l 列表显示 ls -a 显示隐藏文件 ls -h 文件大小&#xff0c;自动找单位&#xff08;Kb、M、G&#xff09; 也可以 ls -l -a -h &#xff08;-l -a -h没有先后顺序&#xff0c;-a -h -l&#xff09; 也可以 ls -lah &…

vue 在 html 中自定义 tag

v-if,v-for,:key,:style,v-text,click,:src,:poster,:class,:href转载于:https://www.cnblogs.com/whm-blog/p/10718697.html

cmd进入python环境_python2和python3同时存在,如何CMD中进入不同的环境

当电脑上同时装了python2和python3时&#xff0c;虽然在二者的路径都写入了环境变量PATH中&#xff0c;但是在CMD中运行python命令时只能进入2或者3&#xff08;安装顺序不同进入的也不同&#xff09;&#xff0c;如何进入想要的python版本环境中&#xff1a; 1.首先将二者的的…

ubuntu grep搜索文本

grep &#xff08;Global search Regular Expression and Print out the line&#xff09; grep “ntfs” xxx.txt 显示xxx.txt包括ntfs行 grep -n “ntfs” xxx.txt 显示xxx.txt包括ntfs行&#xff0c;行数 grep -v “ntfs” xxx.txt 显示xxx.txt不包括ntfs行 grep…

java 死锁 解决_Java死锁故障排除和解决

java 死锁 解决JavaOne年度会议的一大优点是主题专家介绍了几个技术和故障排除实验室。 这些实验室之一尤其引起了我的关注&#xff1a;Java冠军Heinz Kabutz提出的“ HOL6500-查找和解决Java死锁 ”。 这是我在该主题上看到的最好的演示之一。 我建议您自己下载&#xff0c;运…

如何使用War包部署Tomcat

前提&#xff1a; 1&#xff1a;已打包好的项目工程War文件 2&#xff1a;正常运行的Tomcat环境 当前的War文件为&#xff1a;GPCDMS.war Tomcat环境为&#xff1a;http://10.122.111.76:9080/ 具体步骤&#xff1a; 1&#xff1a;点击主页左侧 Tomcat Manager 并使用 ad…

delphi 停电文本数据丢失_NLP中的文本分析和特征工程

语言检测&#xff0c;文本清理&#xff0c;长度测量&#xff0c;情绪分析&#xff0c;命名实体识别&#xff0c;n字频率&#xff0c;词向量&#xff0c;主题建模前言在本文中&#xff0c;我将使用NLP和Python解释如何分析文本数据并为机器学习模型提取特征。NLP(自然语言处理)是…

ubuntu mv和cp命令

mv 1.txt 2.txt 将文件1.txt重命名为2.txt mv abc/ 123/ 将文件夹abc重命名为123 mv 1.txt /abc 将文件1.txt剪切粘贴导到/abc cp 1.txt abc 将文件1.txt复制到/abc cp abc /123 -r 将文件夹abc复制到文件夹123

了解一级JPA缓存

我敢打赌&#xff0c;每个Java开发人员至少听说过L1&#xff08;又名EntityManager或Session&#xff09;缓存。 但是您的理解水平足够好吗&#xff1f; 如果您不确定&#xff0c;请考虑阅读这篇文章。 首先&#xff0c;我们需要知道持久性上下文是什么。 根据EntityManager J…

使用Eclipse开发Java Web过程中Debug调试的使用方法

这里介绍的是在Eclipse中的Debug调试。首先右击项目选择Debug As -- Debug on Server 或者点击Server面板的小昆虫图标&#xff0c;启动Debug模式。 运行web项目&#xff0c;进行到需要调试的地方&#xff0c;在执行页面操作之前&#xff0c;在即将要运行的代码中添加断点&…

JS-this的使用

做前端开发已经半年之多了&#xff0c;前几天看见apply时心生疑惑&#xff0c;于是查阅了好多资料但还是不太理解&#xff0c;只知道是源于this的问题&#xff0c;今天偶然看到了阮一峰大佬的讲解js中的this问题&#xff08;http://www.ruanyifeng.com/blog/javascript/&#x…

如何从几何角度上理解方程组只有一个解_深度科普---电磁波(三):无激励下的真空中的Maxwell方程组的解...

很久没有写过与自己专业相关的文章了&#xff0c;于是计划穿插进几篇有关电磁波的深度科普的文章。计划分为几个部分&#xff1a;1. 真空中的 方程组2. 材料中的 方程组和电磁场的边值条件3. 无激励下的真空中的 方程组的解---电磁波&#xff08;本文章&#xff09;4. 稳定状态…

matlab figure被图像填充

imgimread(3.jpg);imgrgb2gray(img);figure(1);%figure名字为 Figure 1figure(name,第一);%figure名字为 Figure&#xff1a;第一figure(NumberTitle,off,Name,原图);%figure名字为原图[cols,rows]size(img);set (gcf,Position,[400,300,cols,rows]); %设置figure位置&…