Welcome 微信登录

首页 / 软件开发 / JAVA / Java开发2.0: 使用方便的EC2

Java开发2.0: 使用方便的EC22011-04-02 IBM Andrew Glover正如您从 “Java 开发 2.0:您也可以租用 EC2” 中了解到的一样, Amazon 的 Elastic Compute Cloud (EC2) 是一个用于托管(Linux®、OpenSolaris 甚至 Windows®)虚拟机的通用基础设施服务,您可以在这些虚拟机上运行任何程序 。假如您创建或借用了一个虚拟机,也可以将其称为 Amazon Machine Image (AMI) 或实 例,那么您可以运行任何 Java 应用程序 — 包括使用 Hibernate 和 Spring 的 Web 应用程序,正如我将在本文所展示的一样。

围绕 Amazon 的 Web 服务产品的社区在过去几年中一度非常活跃,并且您可以从一组 完整的公共虚拟机分类中选择一种虚拟机来使用。Linux 提供了许多不同版本的虚拟机, 因此可以想象得到虚拟机分类附带了各种软件配置和相关工具。对于本文来讲,我将选择 符合以下条件的 AMI:

已经安装了某种 Java 版本(最好是一个较新的版本)

具有一个 servlet 容 器,例如 Tomcat

具有一个免费可用的数据库,例如 MySQL

寻找 AMI

通过浏览 Amazon 的扩展分类,您不仅可以寻找符合需求的 AMI,某 些 AMI 提供商还在 Web 上提供了它们独有的实例,包括免费的和商用的。例如,Java Web Apps in a Box 就非常适合本文的 Java Web 开发项目。我在 Java Web Apps in a Box 站点中找到了启动该实例所需的所有重要 AMI ID(我将在本文后面演示这一过程) 。

我还有另外一个选择,那就是使用一种 “空白” 虚拟机,然后在 其中安装这些组件。但是您需要花些时间寻找大量的配置。事实上,在大多数情况下, EC2 供应中最困难的部分在于寻找符合您的要求的特定虚拟机。一旦找到这样的虚拟机后 ,那么您将开始从中获得乐趣!我真的 找到一个 符合我的要求的虚拟机,我将展示如何 使用它。这非常简单,如果您已经安装了我在 前一篇文章 中提及的 Eclipse AWS 插件 的话,那么就更简单了。

Eclipse AWS 插件允许您搜索、启动和终止实例;并且,假如您已经正确配置了一个 键对(插件可以很好地处理),那么您可以通过一个特定映像的终端窗口执行 ssh,以进 行进一步的配置。

然而,就像上一次一样,当我开始展示 EC2 的细节时,在启动公共 AMI 之前,最好 构建一个快速 Java 应用程序。通过使用 Grails 框架,应用程序将利用 Spring 和 Hibernate(并因此使用一个底层的持久化存储)。

关于本系列

自 Java 技术出现伊始,Java 开发领域发生了巨大的变化。得益于成熟的开源框架和 可靠的外部(for-rent)部署基础设施,现在我们能够以很低的成本快速组装、测试、运 行和维护 Java 应用程序。在本系列文章中,Andrew Glover 探讨了使这种新的 Java 开 发范例成为可能的技术和工具。

速度是关键

在使用借来的基础设施的过程中,Java 开发 2.0 的一个重要方面就是利用开源技术 以自上而下的方式构建应用程序。通过使用开源工具、框架甚至是解决方案,公司可以迅 速地组装应用程序,因为他们自身不需要编写大量代码。当谈到能够使开发变得迅速并且 更加简单的开源解决方案时,首先想到的两个框架就是 Spring 和 Hibernate。

实际上,世界上的所有 Java 组织都使用 Spring 框架构建应用程序。尽管它主要以 一种反转控制(IoC)框架而著称,但是它确实成为了 Java 开发的主力。(Spring 是一 种面向方面的编程 [AOP] 框架、一种 OSGi 容器、一个 Web 框架等)。Hibernate 亦不 逊色,它是 Java 对象-关系映射(ORM)领域中的重量级框架。Java Data Objects (JDO)(我在本系列 第一期 中已经使用 Google App Engine 进行了演示)的采用率在任 何方面都不及 Hibernate。因此,当我思考当前以及未来的 Java 开发时,很可能会想到 结合使用 Spring 和 Hibernate。(这并不表示您需要同时使用这两者来完成某项特定工 作,只是说明在大部分情况下,这两个框架基本上可以满足您的全部需求)。

与此同时,Groovy 是一种可以大大简化 Java 开发的开发平台。 Groovy 实际上就是 简化了语法的 Java 语言。它允许您将重心放在快速构建解决方案上,而不是周而复始地 编写大量 Java 代码来解决相同的问题。(Groovy 在这方面并非独树一帜。运行在 JVM 上的许多其他语言都可以处理相同的问题)。对于我来说,Groovy 仅仅是我的工具箱中 的另一个 JAR 文件。

因此,当我考虑快速构建应用程序时,我想到了 Groovy、Spring 和 Hibernate。对 于 Web 应用程序,有一种特殊的框架可以将这三者完美地结合在一起,该框架就是 Grails。Grails 构建在 Spring 之上并基于 Groovy。并且 Grails Object Relational Mapping (GORM) — Grails ORM 实现 — 在内部使用 Hibernate。

本文并不会重点介绍 Grails。(如果您希望精通 Grails 的话,我建议您阅读 Scott Davis 的 精通 Grails 系列)。也就是说,使用 Grails 构建简单 Web 应用程序将超乎 寻常地简单。