Spring-TopLink PetClinic 演示程序
Spring-TopLink PetClinic 演示程序
目前,Spring PetClinic 演示程序 可以用三种不同的数据库层之一来运行:
Straight JDBC
Hibernate
OJB
在当前的版本中,我们将一个 TopLink 实施添加到此列表中。以下逐步简介了如何修改现有的 PetClinic 演示程序以使用 TopLink 作为其数据库持久机制,其后是如何运行演示程序本身的步骤。
修改 PetClinic 演示程序来使用 TopLink
使用 TopLink Mapping Workbench 来将模型类从 org.springframework.samples.petclinic 映射到 Spring 自带的示例 HSQL 数据库中。TopLink “映射”元数据将作为 "petclinic-mapping.xml" 导出。
使用 TopLink Sessions Editor 来为上面创建的映射配置 Session。该 Session 配置已经导出到 sessions.xml 文件中。
创建 org.springframework.samples.petclinic.Clinic 接口的 TopLink 实施。该实施扩展了 org.springframework.orm.toplink.support.TopLinkDaoSupport ,因此能够访问 TopLinkTemplate,后者提供了访问正确配置的 TopLink Session 的模板。
创建一个名称为 applicationContext-toplink.xml 的 Spring ApplicationContext 配置文件。这实际上是所有配置进行的地方。基本上,在这里将进行三件重要的事情:
我们创建一个名称为 "sessionFactory" 的 TopLink SessionFactoryBean。这是使用 session.xml 和 petclinic-mapping.xml 数据配置活动 TopLink Session 的地方。
我们创建一个 TopLinkTransactionManager 类型的 "transactionManager" 组件来管理我们的事务范围。
最后,我们创建一个 "clinic" 组件,该组件是第 3 步的 Clinic 接口的实施。它依赖于上面创建的 "sessionFactory" 组件,并且其方法以 Spring TransactionProxy 作为代理,后者依赖于之前创建的 "transactionManager"。
修改 web.xml 文件以使名称为 "contextConfigLocation" 的 <contex-param> 现在指向在第 4 步中创建的新 ApplicationContext。这将把一切连接在一起,因为目前现有的 PetClinic 演示程序会将 Clinic 接口的 TopLink 实施用于其所有的数据库操作。这是可能的,因为需要数据访问的 web 层的组件都将通过声明与实施 Clinic 接口的 "clinic" 组件的依赖性来实现这一点。
构建 PetClinic 演示程序的 TopLink 版本
TopLink PetClinic 演示程序还没有集成到 Spring PetClinic 演示程序中;不过,它只对整体代码进行了少量修改,因此 TopLink 演示程序将通过配置 Ant 脚本(与 SpringTopLink .zip 文件一起提供)指向一个完整的 Spring 版本来构建。这个 Ant 脚本将使用大部分来自 Spring 版本的资源来组装 PetClinic 示例应用程序。
解压缩 SpringTopLink 版本(在 dist.zip 中)。这个位置将以 ${SpringTopLink.root} 的形式进行引用。
将目录修改为 ${SpringTopLink.root}/samples/petclinic
在该目录中打开 build.xml 文件,并修改前两个属性设置,以指向您的 Spring 和 TopLink 安装。
<!-- both of these properties need to be edited for the user's environment --> <property name="spring.root" value="/opt/spring-framework-1.1.1"/> <property name="toplink.root" value="/opt/toplink9.0.4"/>
"dist" 目标将为 Spring-TopLink PetClinic 示例应用程序构建 .war 和 .ear 文件。需要对 TopLink 进行配置,以使用与 Spring 安装一起提供的 HSQL 示例数据库。
将应用程序部署至应用服务器环境。