Spring JPetStore 例子说明

=========================================

== Spring JPetStore 例子说明 ==

=========================================

 

作者 Juergen Hoeller

基于 Clinton Begin's JPetStore (http://www.ibatis.com).

 

 

1. 目的

 

展示了Spring的管理中间层,使用iBATISS数据库层作为数据访问策略,并结合Spring的事务管理和DAO抽象处理。可以使用本地JDBC或者JTA事务管理器,后者提供了支持两个数据库的能力。同原有的JPetStore使用同样的数据模型和演示数据。详细内容可以参考"WEB-INF/dataAccessContext-local.xml""WEB-INF/dataAccessContext-jta.xml"

 

提供两种页面层方式实现了相同的用户交互界面,其一是基于Spring的网页MVC风格,另一个基于Sturts1.1的风格。后者更接近原有的JPetStore,但是重写了JSTL,使得JSP实现尽量具有可比性。详细内容可以参看"WEB-INF/web.xml""WEB-INF/petstore-servlet.xml",以及"WEB-INF/struts-config.xml"

 

同原有JPetStore相比,本实现显著地提升了内部结构,减少了系统的耦合:利用Spring的应用程序上下文功能,现在可以提供集中的对象装配能力。最明显的变化为以前的PetStore逻辑(PetStoreLogic),现在被称为PetStore外观(PetStoreFacade)。它不在需要去关注配置、资源,或者事务的处理细节。

 

注意使用基于Spring方式实现的网页层,特意采用同Struts类似的方式,但并不同原有的错误信息方式一致。两种不同的网页层实现方式展示了它们的程序模型差异,同时也说明了不同的配置风格。

 

本版本的JPetStore同时也演示了使用Spring进行不同远程调用的功能:HessianBurlapRMI,以及Web Services通过使用Apache Axis。它们都利用默认的web application提供out-of-the-box(注意RMI功能被注释,避免同EJB容器冲突)。在"client"目录包含了一个简单的命令行客户端,实现通过各种协议方式导出订单服务的功能。

 

2. 构建与部署

 

目录中包含了网页程序的源码。

为了实现部署,需要使用Apache Ant工具。

需要使用JDK1.3及以上版本,Ant1.5及以上版本。

 

在本目录中运行"build.bat",可以选用不同的目标(例如,"build.bat build",或者"build.bat warfile")。注意使用这种方式运行Ant,你需要一个XML解析器在你的类路径中(例如,在"%JAVA_HOME%/jre/lib/extJDK1.4及以上版本已经包含),也可以使用"warfile.bat"作为创建WAR文件的快捷方式。WAR文件将会被创建在"dist"目录中。

 

使用默认设置方式运行web程序,简单在"db/hsqldb"目录中启动HSQLDB实例即可。例如,可以使用"server.bat"。配置其他的数据库,你需要使用在"db"目录中相对应的模式和数据脚本。采用本地事务管理,JDBC配置存放在"WEB-INF/jdbc.properties",采用JTA方式,你需要在J2EE容器中配置相应的数据源(DataSources)。

 

注意"WEB-INF/dataAccessContext-*.xml"文件需要符合特定的数据库,例如MS-SQL或者Oracle,并使用相应的订单IDs生成策略。参看在上下文XML文件中注释的DAO定义配置。警告:在Spring1.0M4版本,仅HSQLDB被正确的测试通过。我们很高兴接收任何的其他数据库的反馈。

 

部署分布指导,采用JDK1.4.xTomcat4.x

1、  如果没有设置JAVA_HOME,需要正确设置JAVA_HOME环境

2、  运行"ant warfile" 或者 "warfile.bat" 生成 WAR 文件

3、  复制生成的"dist/jpetstore.war"文件到Tomcat's "webapps"的目录

4、  启动HSQLDB,通过"db/hsqldb/server.bat" 或者"server.sh"

5、  启动Tomcat(默认端口为8080

6、  在浏览器中打开"http://localhost:8080/jpetstore"

 

如果你需要测试远程访问服务:

1、  通过JPetStore的网页界面创建一个订单(第一个订单号为1000

2、  修改文件"client/client.properties"中服务器配置的URL(如果不使用默认值)

3、  切换到"client"目录作为运行目录

4、  运行"client.bat 1000",获取并且显示编号1000的订单

5、  运行"client.bat 1000 10",每种协议方式调用获取订单十次

 

3. 元数据版本

 

参看"attributes" "annotation"目录,演示了采用元数据方式声明事务的实现。本版本利用了Spring的简单元数据模型,类似与 DOT NET中的企业服务,但是扩展了声明方式(基于程序方式)实现事务处理功能。

 

JPetStore"attributes"目录,使用了Jakarta Commons Attributes,可以在JDK1.3以上版本运行。在"annotation"目录,使用了JDK1.5及以上版本的注释功能(开始于Spring1.2版本)。

 

每一个目录都有自己的构建文件,调用属性编辑进程和构建WAR文件,使用自己的应用程序上下文XML文件,存在于它下面的"WEB-INF"子目录中。WAR文件将被创建在目录"dist"中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值