Oracle JDeveloper 中的 Spring 2.0 入门
作者:Shay Shmeltzer,Oracle
2006 年 9 月
简介
Spring 是一个开放源代码框架,旨在简化 Java 企业应用程序的开发。Spring 框架已经发展为一个包含解决方案,它包含有各个层的模型以及 Java 应用程序的功能区域。由于 Spring 专注于使用 POJO、利用控制反转概念和相关性注入以及实现面向方面的编程,这些都帮助 Spring 成长为一个比较受欢迎的框架。有关 Spring 框架的更多信息,请访问它的主页。
Oracle JDeveloper 是一个免费 IDE,它提供了一个可视化的声明式开发方法,用于构建基于 Java 的 SOA 企业应用程序。JDeveloper 涵盖了整个开发周期(包括建模、编码、调试、剖析和审计)以及部署。除了基本的 Java IDE 产品,JDeveloper 还在单一 IDE 中提供了针对企业 Java、Web 服务、SOA、XML 和数据库开发的特性。您可以从这里获得最新版本的 JDeveloper。本教程使用 JDeveloper 10.1.3.1 开发人员预览版,但说明应该与 10.1.3 产品版相关。
在本文中,我们将说明如何设置 JDeveloper 使用 Spring 框架,然后重点说明 JDeveloper 中能够使您的 Spring 开发更高效的一些功能。
设置 JDeveloper 使用 Spring
下载 Spring
我们将在本文中使用 Spring 2.0 版。虽然该版本的 Spring 仍在开发中,但您可以从 Spring 网站下载候选版。
访问 Spring 框架网站 http://www.springframework.org/download,并下载 Spring 2.0 的最新稳定版(在撰写本文时是版本 2.0 RC3)。您需要找到名称以 * -with-dependencies.zip 结尾的文件,该文件包含运行 Spring 示例所需的所有库。
现在,将该文件解压缩到计算机上的一个新目录中。在示例中,我们将其解压缩到 C:,从而创建一个 C:\spring-framework-2.0-rc3 目录。
配置项目目录
要演示配置 JDeveloper 使用 Spring 的步骤,我们将配置 JDeveloper 运行 Spring 程序包随附的 jpetstore 示例。
启动 JDeveloper 之后,从菜单中选择 New->General->Application,然后为应用程序指定一个名称。应用程序定义可以放在磁盘的任何位置,但为了保持组织性,您应该将目录名指定为源的最顶层目录。因此,您可能要将其放在 Spring 安装的 samples 目录中。在 Application Template 域中,选择 No Template。
![]()
当系统提示您创建项目时,将其重命名为 jpetstore,然后在 Directory Name 域中,导航到 Spring samples 目录下的 jpetstore 目录。
![]()
Application Navigator 将显示目录的内容,该目录分为 Application Sources 和 Resources 两部分。在查看分为几个特定组件的项目内容时,Application Navigator 提供了一个抽象级别。
![]()
您可能希望选择 View->System Navigator 来获得文件视图,该视图非常类似于文件系统的结构。
![]()
由于该应用程序包含 web 界面,我们需要向 JDeveloper 指明这一点。
双击或右键单击项目,调出 Project Properties 对话框。在 Application Navigator 中导航到 Project Content-> Web Application 部分。
单击 Browse 按钮,并选择 war 子目录作为 Web 内容的根目录。
![]()
这会将另一个标题为 Web Content 的部分添加到 Application Navigator 中。

在 JDeveloper 项目中添加库
由于 JDeveloper 没有与 Spring 库绑定,因此我们需要在 JDeveloper 项目中添加 Spring 库以及示例中使用的其他库。这可以通过项目的 properties->libraries 部分完成。
但是,为了简化连接所有必需库的工作,我们将使用 Spring 示例随附的 Ant 脚本来构建示例,并创建一个包含所有库的信息库。
在 JDeveloper 中运行 Ant 任务
在资源部分找到 build.xml 文件(Ant 脚本)。右键单击并选择 Run Ant Target->Build。这将为示例运行编译过程。运行特定 Ant 任务以及整个编译文件的功能是 JDeveloper 为 Ant 框架提供的内置支持的一部分。
![]()
在日志窗口中,您将看到脚本的执行结果。

运行脚本会创建一个新目录,其中包含分发(及编译)代码所需的所有库。

在项目中添加库
以下过程是将任何第三方 jar 文件添加到当前项目的方法。
双击项目调出 Project Properties,然后转到 libraries 节点。单击 Add Jar/Directory 按钮。
![]()
导航到新创建的 lib 目录 (c:\spring-framework-2.0-rc3\samples\jpetstore\war\WEB-INF\lib),按住 shift 单击以选择该目录下的所有 jar 文件,然后单击 ok。
![]()
除了 Spring 的特定库以外,我们还需要在项目中添加两个通用的 J2EE 库。
在 Project Properties 窗口中,单击 Add Library 按钮,向下滚动以找到 J2EE 和 JSP Runtime 库(在 Extensions 节点下面),然后将它们添加到项目中。

提示:如果您打算定期使用 Spring,应该创建一个包含相关 jar 文件的 JDeveloper 库。为此,请转到 tool->manage libraries 菜单,创建一个新库,然后在其中为所有要使用的 JAR 文件添加项。现在,您可以转到 tools->default 项目属性,并将该库添加到项目。从现在开始,您要创建的每个项目将所有这些 jar 文件设置完毕,可以随时使用。
编译和运行项目
现在,我们可以编译项目了。单击工具栏中的 Rebuild 按钮(或按 Alt+F9)。在日志窗口中,查看 Messages 选项卡以了解编译进度。您的项目应该能够顺利编译。注意:您可能会看到有关代码中不推荐使用部分的 4 个警告,但现在可以忽略它们。
![]()
![]()
您需要启动一个数据库,然后才能运行项目。我们将使用演示随附的示例数据库。从命令行窗口导航到 jpetstore 示例下的 db\hsqldb 目录。设置环境变量 JAVA_HOME,使其指向您的 JDK 目录(完整 JDeveloper 安装随附的 JDK 目录位于 [jdev-root]\jdk),然后运行 server.bat 文件。
稍后,我们将看到如何配置示例,使其与 Oracle 数据库一起运行。
现在,可以运行项目了。
在 Application Navigator 中导航到 index.html 页面,然后右键单击以选择 Run。
![]()
JDeveloper 随附有一个内置 J2EE 容器 — Oracle J2EE Container,因此您不需要考虑在计算机上安装其他 J2EE 容器来测试应用程序。
为了使测试周期更加简化,JDeveloper 可以将应用程序自动部署到内嵌的 J2EE 容器,并在应用程序运行的同时打开一个浏览器。
单击 Enter the Store 链接,可以看到应用程序正在运行。
![]()
针对 Spring 的 JDeveloper 特性
JDeveloper 具有许多能够简化 Java 企业应用程序开发的特性。在本部分中,我们将探究一些能够使您的 Spring 开发体验更加有趣的特性。
强大的 XML 编辑功能
JDeveloper 包含一个强大的框架,能够提供简化基于模式编辑 XML 文件的特性。在开发 Spring 应用程序时,您将与许多 XML 配置文件交互,本部分将说明如何更好地进行交互。
第一步是将您要使用的 Spring 文件的 XML 模式注册到 JDeveloper 的 XML 编辑框架。您可以在 Spring 示例的每个 XML 文件的头中找到 XML 模式的位置。可以从这里获得所有 Spring 模式的列表。
注册 XML 模式
转到 tools->preferences 菜单。
在 XML Schemas 节点下,单击 add 并添加以下 3 个模式:
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/aop/spring-aop.xsd
- http://www.springframework.org/schema/tx/spring-tx.xsd
注意:如果您在代理下运行,则在添加 XML 模式之前,需要设置 tools->web browser 和 proxy entry 以包含代理信息。
另请注意:您还可以参考 xsd 文件的本地副本。您可以在 Spring.jar 文件中找到这些 xsd 文件。
![]()
现在,我们打开 applicationContext.xml 文件(位于 WEB-INF 下面),并查看 JDeveloper 提供的内容。
滚动至文件的末尾,并在最后一个 </beans> 标记前的一个新行中键入: <
如您所见,JDeveloper 的代码洞察功能会为您显示此时有效的选项。
![]()
从列表中选择 bean,然后插入一个空格,此时弹出的代码洞察就会为您提供一个标记属性选项。
![]()
您可以按如下方式完成标记项。
<bean id="joe" class="joe">
</bean>
提示:在您键入的时候,JDeveloper 可以自动为您添加结束标记。要激活这个功能,请检查 tools->preferences->code editor->XML 和 JSP/HTML 下的 End Tag Completion 选项。
接下来,在 </bean> 结束标记前打开一个新行,然后键入 < 并选择 property,您将注意到 JDeveloper 会自动添加必需属性。
![]()
在编辑 XML 文件时,您还可以使用 Component Palette 在文件上拖放组件。
例如,在 Component Palette 窗口(ctrl+shift+P 可以调出该窗口)中,选择 http://www.springframework.org/schema/beans 模式。现在,您可以将一个属性标记拖放到 XML 文件的 bean 标记中。

这将调出一个窗口,提示您插入必需属性(在本例中是 name),并且您可以在第二个选项卡中设置其他属性。
![]()
还要注意 Property Inspector 窗口 (ctrl+shift+I),该窗口可让您轻松地编辑标记属性。
在文件窗口的右侧,您可以看到文件状态,并且可以轻松导航到有问题的行。
![]()
Structure 窗口可以提供 XML 文档的概述、轻松导航和编辑。
如果您的 XML 文件中有任何错误,都会在这里显示。

您还可以使用 Structure 窗口编辑文件,例如在 Structure 窗口中导航到您刚才添加的最后一个 bean 项,选择该项,然后右键单击 -> delete。

可视化 UI 设计
JDeveloper 提供了可视化 WYSIWYG 编辑器,用于设计您的 HTML、JSP、JSF 或 Swing 用户界面。
从应用程序中打开一个 JSP 页面,如 ConfirmOrder.jsp 文件。JDeveloper 将在可视化编辑器中打开该文件。您可以右键单击编辑器窗口最顶层的选项卡,然后选择 split window。现在,您将同时看到文件的可视化编辑器视图和源代码编辑器视图。这两个视图保持同步,如果单击可视化视图中的对象,它将在代码编辑器中突出显示。
![]()
您可以使用 Component Palette 在页面上拖放 JSP 标记和 HTML 组件(在设计视图和源代码视图上均可)。Property Inspector 和 Structure 窗口的工作方式也是如此,以帮助您自定义页面。
![]()
请注意,您可以在 JSP 页面中设置断点,以便在以后进行调试。
可视化页面流图
JDeveloper 为 Struts 和 JSF 提供了可视化页面流图。
在应用程序中找到 struts-config.xml 文件(位于 WEB-INF 目录下面),双击该文件打开 Struts 页面流图。

该视图将显示应用程序流程,您可以在缩略窗口中通过该图轻松导航。可以使用 Component Palette、Property Inspector 和 Structure 窗口进一步编辑您的文件。您可以频繁切换或拆分编辑器,以便直接查看和修改源代码。
如果您喜欢基于对话框的文件编辑环境,可以在 Application Navigator 中右键单击 struts-config.xml 文件,然后选择 Properties 调出以下界面来编辑文件。
![]()
使用数据库
JDeveloper 包含了使您能够在 IDE 中直接与数据库进行交互的特性。这些特性也可用于其他数据库,但在我们的案例中,将更改示例以使用 Oracle XE 数据库。
Oracle 数据库 10g Express 版 (Oracle XE) 是一款基于 Oracle 数据库代码库的小型入门级数据库,它可以免费进行开发、部署和分发,下载速度快并且管理简单。
在您的计算机上安装 Oracle XE 数据库,然后根据以下说明运行 Spring 示例。
注意:这些说明也可用于现有 Oracle 数据库。
创建数据库连接
打开 Connection 窗口 (ctrl+shift+o),然后右键单击数据库节点以创建一个新的数据库连接。
在向导的第一步中,给定一个连接名 - 如 OracleXE。
在第二步中,插入 System 作为用户名以及您在安装时使用的密码。
在第三步中,填写用于访问数据库的信息,并将 SID 域设置为 XE。
![]()
在第四步中,测试连接并确保它返回 success,然后单击 ok 退出向导。
执行 SQL 命令
现在,我们创建一个用户来宿主演示中的表。
右键单击连接并选择 SQL Worksheet。SQL Worksheet 可让您发出要在数据库中执行的 SQL 命令。

编写以下命令
create user spring identified by spring;
然后单击以绿色箭头表示的运行按钮。
![]()
接下来,编写并运行以下命令
grant connect,resource to spring;
现在,我们将在 JDeveloper 中更改连接的属性,以使用这个新用户名。
右键单击您创建的 OracleXE 连接,选择 properties,更改用户名和密码以匹配您刚刚创建的用户,然后测试连接。当然,如果愿意,您也可以为 Spring 用户创建一个新的数据库连接。
现在,我们将包含 Oracle 创建脚本的目录添加到项目。
回到 Application Navigator,双击项目转到 Project Properties。在 project content->resources 下,单击 add 按钮并将 jpetstore\db\oracle 目录添加到项目。
![]()
在 Application Navigator 中,展开 resource 节点,右键单击 jpetstore-oracle-schema.sql 文件,然后选择 Run in SQL*Plus 和您的连接名。

从 JDeveloper 中第一次调用 SQL*Plus 时,需要找到 Oracle XE 安装随附的 sqlplus 实例(在本例中是 C:\oraclexe\app\oracle\product\10.2.0\server\BIN\sqlplus.exe)。
这将调用命令行工具 sqlplus,系统将提示您输入 spring 用户密码,随后脚本将运行并为您的用户创建表。
要将数据加载到表,右键单击 jpetstore-oracle-dataload.sql 文件,并再次选择 Run in Sqlplus。
浏览和编辑数据库
现在,您可以在 connection 选项卡下浏览数据库结构。您可以看到每个表的结构,甚至查看并更改表中的数据。
您还可以创建其他数据库对象,甚至使用 JDeveloper 的数据库设计图功能。
![]()
设置 Spring 示例与 Oracle 数据库一起使用
在 WEB-INF 目录中,于 JDeveloper 中打开 jdbc.properties 文件,然后按如下方式编辑连接信息:
jdbc.driverClassName=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:XE
jdbc.username=spring
jdbc.password=spring
现在,转到 index.html 页面,然后右键单击 Run。
这次,您将使同一个应用程序与 Oracle DB 一起使用。
结论
正如您看到的那样,设置 JDeveloper 使用 Spring 非常简单。JDeveloper 提供的各种特性可以使基于 Spring 的开发更高效。在本教程中,我们只涵盖了能够帮助您更轻松地创建 Spring 应用程序的 JDeveloper 特性的一小部分。请进一步探究 java 类图、调试器、监测器、代码审核和支持整个企业 Java 组件集合等特性,以及 Web 服务和 SOA 开发。
更多资源
|