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的GAE支持。
在本系列文章的第2部分中将分析Cloud Foundry。
将GAE应用程序部署到云
此处已经存在一篇非常好的介绍性文章,它描述了Spring Roo和GAE的组合: http : //java.dzone.com/articles/creating-application-using 。
简而言之,在GAE云中部署(CRUD-)应用程序没有太多工作要做。
您必须选择另一个数据库提供程序,在配置文件中输入GAE应用程序ID,然后使用一个Maven命令(mvn gae:deploy)部署该应用程序。
那就是与“传统” Roo应用程序的区别。
因此,没有火箭科学!
尽管如此,开发GAE应用程序还是有一些限制,例如由于NoSQL概念,您不能使用@OneToMany注释来指定关系。
如果您不遵守规则,部署将分别失败,应用程序将无法按预期运行。
GAE不仅仅是将传统的Web应用程序部署到云中
因此,在阅读了之前的内容之后,得出以下结论:Spring Roo支持将其应用程序部署到GAE云。
因此,一切都很好吗?
一点都不!
是的,您可以将CRUD应用程序部署到GAE云(如果不使用关系),但是GAE还有很多。
您可以或应该使用“任务队列”来分割长期运行的工作,使用BigTable数据存储区和Blob存储区来存储数据,使用URL提取服务通过HTTP(S)与其他应用程序进行通信,以及其他一些GAE服务(例如XMPP) ,Memcache,邮件等。
随着新的GAE版本,可用服务的数量进一步增加。
存在这些GAE服务的原因有几个:您应该能够创建一个自动扩展的云应用程序,而无需任何手动服务器配置和类似的东西。
这就是为什么在不为云开发应用程序时,必须使用NoSQL数据库概念和Fetch URL来代替SQL数据库,线程,套接字编程以及过去使用的其他技术的原因。
Google开发人员并不是很笨拙,无法支持SQL数据库,但是对于高度扩展的云应用程序来说,它并不是合适的技术。
关于“ SQL vs NoSQL”的一篇不错的文章可以在这里找到: http : //java.dzone.com/news/sql-vs-nosql-cloud-which
开发GAE应用程序时缺少几个Spring Roo命令
Spring Roo没有特殊的GAE命令。
您使用persistence命令来创建对BigTable的支持,并使用Maven目标来部署GAE应用程序。
此外,没有GAE命令,尽管您需要使用它们来创建任务队列,BigTable数据存储访问(包括关系),URL提取等。
您必须自己编写所有代码,就像没有Spring Roo一样。
因此,目前还没有对GAE的真正支持–与Cloud Foundry相反(我们将在本系列文章的第2部分中看到)。
当然,VMware希望推广自己的PaaS解决方案,据我所知。
尽管如此,Spring Roo还应该像针对Web框架一样,为其他解决方案提供良好的支持(与此同时,除了对Vaadin,Flex和JSF的插件可用之外,对Spring MVC和GWT都有官方支持)。
GAE是Java环境中唯一稳定的,可用于生产环境的PaaS解决方案
请注意,GAE是当前Java环境中唯一稳定且可投入生产的PaaS解决方案。
Cloud Foundry或Red Hat OpenShift等其他产品仍处于BETA状态。
另请注意,存在某些原因导致Google尚未提供SQL数据库支持。
由于公众的批评很大,他们将来可能会添加此功能。
但是,在许多要在云中部署应用程序的用例中,都将需要NoSQL数据库。
因此,我希望Spring Roo在将来的版本中将提供更好的GAE支持。
参考: 使用Spring Roo进行快速云开发–第1部分:来自我们JCG合作伙伴 Kai Wahner的Google App Engine(GAE) , 有关Java EE / SOA /云计算的博客。
翻译自: https://www.javacodegeeks.com/2012/06/rapid-cloud-development-with-spring-roo.html