用 Apache Derby 和 JRuby on Rails 快速构建原型
Ruby on Rails 提高了在快速开发数据驱动的 Web 站点方面的标准。JRuby 项目使 Ruby 比以前更快更具有可伸缩性。在 Java™ 虚拟机上运行 Rails 的最大优点之一是您可以利用其他 Java 库,如 Apache Derby 嵌入式数据库。Derby、JRuby 和 Rails 的组合允许快速构建动态 Web 应用程序的原型。了解如何结合使用这些技术来帮助您
Ruby on Rails 提高了在快速开发数据驱动的 Web 站点方面的标准。JRuby 项目使 Ruby 比以前更快更具有可伸缩性。在 Java™ 虚拟机上运行 Rails 的最大优点之一是您可以利用其他 Java 库,如 Apache Derby 嵌入式数据库。Derby、JRuby 和 Rails 的组合允许快速构建动态 Web 应用程序的原型。了解如何结合使用这些技术来帮助您构建下一个伟大构想的原型。
本文将使用若干项可实现快速 Web 开发的前沿技术。可以在 参考资料 小节中找到所有这些技术的链接。我们将使用 JRuby V1.1.3 和 Apache Derby,两者是基于 Java 的技术并且要求使用 Java Development Kit(JDK)V1.4 或更高版本。强烈建议使用 V1.6 JDK,因为 Apache Derby 是与 JDK V1.6 绑定的。如果使用 V1.4 或 1.5 VM,则可以单独下载 Derby。本文中结合使用了 V10.4.1.3 与 V1.5.0_13 JDK。本文还使用 Rails V2.1。假设您具备 Ruby 和 Ruby on Rails 的预备知识,这样才能发挥本文的最大作用。
|
现在的许多 Web 应用程序框架都注重开发人员的生产率,这很好,因为开发人员的时间十分宝贵,对不对?但是,经常遗漏的一件事是设置时间,包括从一台整洁的计算机转到开发人员可以编写和运行代码的位置是多么复杂。这不仅仅对于坐在家中使用新技术的开发人员非常重要,而且对于频繁雇佣新开发人员并且想要尽快看到投资回报的组织来说同样重要。Rails 在此领域成绩斐然 — 并且结合 JRuby 与 Derby 的效果甚至更好。
假定您已安装 V1.6 JDK。JRuby 需要知道 JDK 的位置,因此它遵循查找名为 JAVA_HOME 的环境变量的通用约定,该环境变量指向 JDK。您还应当确保 $JAVA_HOME/bin 位于路径中。现在只需下载 JRuby 并将其解压缩到所需位置。建议创建此位置的环境变量 — 称为 JRUBY_HOME — 并把 $JRUBY_HOME/bin 也放入路径中。这是需要为 JRuby 做的全部操作,但是 Rails 呢?
JRuby 是一个 100% 的 Ruby 实现,它只是将 Java 用于其实现而不是原生代码。它提供了 Ruby 所拥有的一切内容并且包括 gem
。要安装 Rails,只需使用 gem
,如清单 1 中所示。
清单 1. 用
gem
安装 Rails
$ jruby -S gem install rails |
注意,使用 JRuby 与原生 Ruby 之间惟一的真正区别是 gem
命令是以 JRuby -S
为前缀的。这将告诉 JRuby 先在 $JRUBY_HOME/bin 目录中查找脚本。这将确保获得 JRuby 的 gem
脚本。
可以让 JRuby 使用现有的 gem
库(即与原生 Ruby 安装共享 gem
库)。只需要设置环境变量。但是,不建议这样做。大多数 gem
是用 Ruby 编写的,并且与 JRuby 兼容。但是某些 gem 是用 C++ 编写的,并且这些 gem 与 JRuby 不兼容。同样地,某些 JRuby gem
是用 Java 语言编写的,并且与原生 Ruby 不兼容。
运行以上命令需要花费一段时间,并且在很大程度上依赖于网络连接速度。Rails 附带 Web 服务器 WEBrick,该服务器肯定不是适合生产环境的 Web 服务器,但是适合快速实现原型化和开发。现在只需一个数据库 — 也就是,Apache Derby。
|
Rails 使用 ActiveRecord
库处理数据库访问及数据库表与 Ruby 对象模型之间的对象关系映射。这里稍微有些不同,因为使用的是 JRuby 而不是 Ruby。在 Java 语言中,我们有 Java 数据库连接(Java Database Connectivity,JDBC)API 与数据库通信,而且我们希望在 Rails 中利用 JDBC API。因此需要一个额外的 gem
,它允许 ActiveRecord 使用 JDBC。这包括特定于数据库的信息,因此需要安装特定于 Derby 的 gem
。
清单 2. 为 Derby 安装
ActiveRecord-JDBC
gem
本文转自IBM Developerworks中国
更多推荐
所有评论(0)