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 Tool Suite還提供了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 / Cloud Computing博客的博客上。
翻譯自: https://www.javacodegeeks.com/2012/06/rapid-cloud-development-with-spring-roo_04.html