使用Spring Roo创建应用程序,并在谷歌应用引擎上进行部署
Spring Roo 是一个快速应用开发工具,它可以帮助你在java编程语言中快速构建基于spring的企业应用。谷歌应用引擎 是一种云计算技术 ,让你在谷歌的基础设施上运行你的应用程序。使用Spring Roo,你可以开发可在谷歌应用引擎上部署的应用程序。在本教程中,我们将开发一个可以在谷歌应用引擎上运行的简单应用。
Roo使用Roo shell来配置和 管理你的应用程序。Roo shell可以作为一个独立的、命令行工具启动,也可以作为Springource工具套件ide中的一个视图窗格。
快速而有效地创建它
大多数创建应用程序的人都想快速创建,而且想有效创建。这意味着,如果他们能想出一个办法来创建一些既能为他们的用户服务,又能为他们提供所需的交易速度的东西,那么,这完全有可能正是他们需要做的,以 获得最佳效果。
大多数人都在寻找谷歌搜索作为将他们的应用程序推向世界的好方法,而这似乎也是一个很好的开始。推广能够帮助普通人获得各种项目所需帮助的应用程序,意味着与世界上最受欢迎的搜索引擎合作来实现这一目标。因此,你应该寻求开发在谷歌上运行的应用程序,以获得你所需要的那种结果。
前提条件
在我们开始使用Roo shell之前,我们需要下载并 安装所有的先决条件:
-
下载并安装SpringSource工具套件2.3.3。 m2。Spring Roo 1.1.0.m2与STS捆绑在一起。在安装STS时,安装程序会询问STS的安装位置。在该目录中,它将创建一个名为 "roo-%release_number%"的文件夹,其中将包含roo的东西。在你的路径中添加%spring_roo%/roo-1.1.0.m2/bin,这样当你可以从命令行中启动roo命令。
-
启动STS并进入仪表板(帮助->仪表板)。
-
点击扩展标签
-
安装 "google eclipse插件 "和 "datanucleus插件"。
-
根据提示重新启动STS。
安装完以上所有内容后,我们可以开始构建应用程序。
Conferenceregistration.Roo应用程序
会议注册是一个简单的应用程序,演讲者可以在这里注册自己,并 创建一个他们想要谈论的 会议。因此,我们将有两个实体:发言人和演讲。 按照说明来创建该应用程序:
-
打开你的操作系统命令行外壳
-
创建一个名为conference-registration的目录
-
在你的命令行shell中进入conference-registration目录
-
发射Roo命令。你会看到一个roo shell,如下图所示。提示命令给你下一步可以采取的行动来管理你的应用程序。
-
输入提示命令并按回车键。 Roo会告诉你,首先你需要创建一个项目,为了创建一个项目,你应该输入'project',然后点击tab。提示命令是非常有用的,因为你不需要把所有的命令都塞进去;它总是会给你下一个合乎逻辑的步骤,你可以在这一点上采取。
-
Roo的提示命令告诉我们必须创建项目,因此输入project命令,如下图所示
project --toplevelpackage com.shekhar.conference.registration --java 6该命令创建了一个新的maven项目,顶层包名为com.Shekhar.conference.registration,并创建了用于存储源代码和其他资源文件的目录。在这个命令中,我们还指定了我们使用的是Java 6版本。
-
一旦你创建了项目,再次输入提示命令,Roo会告诉你,现在你必须设置持久性。键入以下命令
persistence setup --provider datanucleus --database google_app_engine --applicationid roo-gae
这个命令设置了持久化所需的所有东西。它创建了persistence.xml并在pom.xml中添加了持久化所需的所有依赖项。我们选择了DataNucleus作为提供者,数据库为google_app_engine,因为我们正在为google应用引擎开发我们的应用程序,它使用自己的数据存储。当我们把我们的应用程序部署到谷歌应用引擎时,Applicationid 也是必需的。现在我们的持久化设置已经完成。
8.再次键入hint命令,Roo会告诉你,你现在必须创建实体。所以,我们需要创建我们的实体的说话人和演示文稿。为了创建一个演讲者实体,我们将键入以下命令
entity --class ~.domain.speaker --testautomatically
field string --fieldname fullname --notnull
field string --fieldname email --notnull --regexp ^([0-9a-za-z]([-.\w]*[0-9a-za-z])*@([0-9a-za-z][-\w]*[0-9a-za-z]\.)+[a-za-z]{2,9})$
field string --fieldname city
field date --fieldname birthdate --type java.util.date --notnull
field string --fieldname bio
以上六行创建了一个名为session的实体,有不同的字段。在这里面,我们使用了notnull约束,email的regex验证,日期字段。应用引擎上的Spring Roo还不支持枚举和引用,这意味着你还不能在实体之间定义一对一或一对多的关系。Spring MVC应用程序支持这些功能,但到目前为止,Spring MVC应用程序还不能在应用引擎上部署。Spring Roo Jira有这些问题。它们将在未来的版本中被修复(希望如此:) )。
9.接下来创建我们应用程序的第二个实体 "演示"。为了创建一个演示实体,在Roo shell上键入以下命令
entity --class ~.domain.presentation --testautomatically
field string --fieldname title --notnull
field string --fieldname description --notnull
field string --fieldname speaker --notnull
以上四行创建了一个名为presentation的jpa实体,位于域子包中,并添加了三个字段--title、description和speaker。正如你所看到的,演讲者被添加为一个字符串(只需输入全名)。谷歌应用引擎上的Spring Roo仍然不支持引用。
10.现在我们已经创建了我们的实体,我们必须创建我们应用程序的面孔,即用户界面。目前,只有GWT创建的用户界面可以在应用引擎上运行。要做到这一点,请输入
gwt setup
这个命令将添加GWT控制器以及所有用户界面所需的东西。如果你的maven仓库中没有这些依赖项,这个命令可能需要几分钟时间。
11.接下来,你可以用以下命令将log4j配置为调试级别。
logging setup --level debug
12.退出Roo shell
13.如果你的系统安装了maven,你可以很容易地在本地运行你的应用程序,只需在你创建项目的同一目录下,在命令行shell中输入 "mvn gwt:run"。这将启动GWT开发模式,您可以测试您的应用程序。请注意,当你在开发环境中运行时,应用程序不会在谷歌chrome浏览器中运行。所以,最好在火狐浏览器中运行。
14.要将你的应用程序部署到谷歌应用引擎,只需输入
mvn gwt:compile gae:deploy