spring roo
Spring Roo是在Java平台上提供快速应用程序开发的工具。
我已经解释了何时使用它: http : //www.kai-waehner.de/blog/2011/04/05/when-to-use-spring-roo 。
Spring Roo目前支持两种针对云计算的解决方案:Google App Engine(GAE)和VMware Cloud Foundry。
两者都提供了平台即服务(PaaS)概念。
本文将讨论Spring Roo的Cloud Foundry支持。
在本系列文章的第1部分中讨论了GAE。
将Cloud Foundry应用程序部署到云端
Spring Roo的参考指南在http://www.springsource.org/roo/guide?w=base-cloud-foundry进行了介绍,其中介绍了Spring Roo和Cloud Foundry的结合。
简而言之,在Cloud Foundry云中部署(CRUD-)应用程序没有太多要做。
您必须登录到Cloud Foundry帐户,创建一个WAR文件并进行部署。
三个Roo命令执行这些任务。
如果您使用任何Cloud Foundry服务(例如MySQL,Redis或RabbitMQ),则必须使用其他Roo命令创建并绑定这些服务。
部署非常容易。
您可以选择将应用程序部署到私有云(自己的服务器)或公共云(VMware服务器)。
我遇到了一个奇怪的不说话的异常(这是Spring Roo经常遇到的主要问题):“操作无法完成:400错误的请求”,但是没有其他详细信息或异常。 论坛支持是必要的。 问题是我的云应用程序的名称已经被另一位开发人员使用,它不是唯一的(我尝试使用名称“ SimpleCloudFoundry”)。 一个更多的错误消息会很好! 使用另一个(唯一)名称解决了该问题。
Cloud Foundry只是传统的Web应用程序-与GAE相反
因此,在阅读了之前的介绍之后,得出以下结论:Spring Roo支持将其应用程序部署到Cloud Foundry云。
因此,一切都很好吗?
是的,或多或少令人惊讶,这是真的!
Cloud Foundry文档的声明也是如此:„您无需以特殊方式构建应用程序或使用有限的语言或框架功能子集,也无需调用特定于Cloud Foundry的API。
您可以像没有Cloud Foundry一样开发应用程序,然后进行部署。”
那么,为什么要考虑使用其他PaaS解决方案而不是Cloud Foundry?
Cloud Foundry应用程序是传统的Java Web应用程序,它们使用Spring并将其部署到Tomcat Web容器。
您没有很多限制(请记住GAE的Java类白名单)或数据库限制(请记住GAE的BigTable概念)。
请注意,由于这一优势,您必须使用Cloud Foundry提供的服务!
目前,您可以使用MySQL,Redis,Mongo DB和RabbitMQ。
不能使用其他数据库或消息传递解决方案。
如果所提供的服务满足您的需求,那么一切都很好。
Roo Shell几乎提供了所有Cloud Foundry命令
通常,您在诸如Eclipse之类的IDE中开发Cloud Foundry应用程序。
此外,您可以使用VMware CLI(命令行工具)登录Cloud Foundry,创建和绑定服务,部署,启动和停止应用程序,等等。
Spring Roo提供了30多个独特的Cloud Foundry命令。
通过Roo的Cloud Foundry集成,您现在可以从Roo Shell管理应用程序的整个生命周期。
太棒了!
当然,VMware希望同时推动Cloud Foundry和Spring Roo,因此两种产品之间的连接确实很好。
但是...
没有理由使用Spring Roo进行Cloud Foundry开发
Spring Roo的目标是帮助开发人员更轻松,更快地实现应用程序。
对于创建原型或CRUD Web应用程序来说,它真棒。
但是,创建Cloud Foundry应用程序无济于事。
当然,您可以在Roo Shell中直接使用所有VMC命令,仅此而已。
我想知道这是否有优势吗?
我发现在输入要使用的真实命令之前总是在Roo shell中键入“ cloud Foundry”很烦人。
因此,我Swift切换回了VMC命令行工具。
SpringSource工具套件还提供了Cloud Foundry插件,以通过“拖放”来绑定服务和部署应用程序。
非常好!
我认为,使用Spring Roo开发Cloud Foundry应用程序没有任何好处。
当然,有一个例外:如果您开发Spring Roo应用程序(比如说CRUD应用程序),那么您可以在同一shell中完成所有操作,这很酷。
顺便说一句:尽管我确实认为与Spring Roo的结合不会带来任何好处,但我真的很喜欢Cloud Foundry。
它是最早提供关系数据库支持的PaaS解决方案之一(Amazon Elastic Beanstalk除外)。
此外,可以部署到公共云和私有云。
它是开源的,因此将来会提供更多的支持和服务。
但请注意:与GAE相反,Cloud Foundry目前仍是BETA。
本系列文章的当前结论是,Spring Roo并没有真正帮助开发云应用程序。
不过,我喜欢Spring Roo,也喜欢PaaS解决方案,例如GAE和Cloud Foundry,但并没有结合在一起。
如果这种情况发生变化或者Spring Roo支持更多PaaS产品,我将写更多文章。
参考: 使用Spring Roo进行快速云开发–第2部分:来自我们JCG合作伙伴 Kai Wahner的VMware Cloud Foundry , 有关Java EE / SOA /云计算的博客。
翻译自: https://www.javacodegeeks.com/2012/06/rapid-cloud-development-with-spring-roo_04.html
spring roo