本节将通过介绍一个积分商城系统来演示如何使用SSH集成进行开发。
积分商城一般是购物网站的子模块,提供一些礼品或商品用于奖励老用户或使用积分来折换成现金,如图11-1所示。
图11-1 购物网站与积分商城
积分商城功能点:
交易管理模块:用于查看积分交易历史;
商品管理模块:用于CRUD积分兑换商品;
日报或月报:用于发送给运营人员每日积分兑换情况,一般通过email发送;
……
商品展示:展示给用户可以使用积分兑换的商品;
支付模块:用户成功兑换商品后扣除用户相应积分
添加积分模块:提供接口用于其他产品赠送积分使用,如每天在线10小时赠送50积分,购买相应商品增加相应积分;
订单管理模块:订单管理模块可以使用现有购物平台的订单管理。
购物平台、用户系统及积分商城交互如图11-2所示,其中用户系统负责用户登录,购物平台是购物网站核心,积分商城用于用户使用积分购买商品。
图11-2 购物平台、用户系统及积分商城交互
由于积分商城也是很复杂,由于篇幅原因不打算完全介绍,只介绍其中一个模块——商品(兑换码)管理及购买,该模块主要提供给用户使用积分兑换一些优惠券或虚拟物品(如移动充值卡)等等。
由于本节是关于SSH集成的,因此选用技术如下:
技术选定了,应该考虑平台架构了,这关系到项目的成功与否。
积分商城系统架构也将采用经典的三层架构,如图11-3所示:
图11-3 三层架构
分层的目的是约束层次边界,每层的职责和目标应明确和单一,每层专注自己的事情,不要跨越分层边界,具体每层功能如下:
系统架构已选定,在此我们进行优化一下,因为在进行基于SSH的三层架构进行开发时通常会有一些通用功能、如通用DAO、通用Service、通用Action、通用翻页等等,因此我们再进行开发时都是基于通用功能进行的,能节省不少开发时间,从而可以使用这些节约的时间干自己想干的事情,如图10-4所示。
图10-4 基于通用层的三层架构
通过【File】>【New】>【other】>【Web】>【Dynamic Web Project】创建一个Web工程,如图11-5所示;
图11-5 Web工程配置
2、 项目结构
如图11-6 所示:
图11-6 项目结构
3 、项目属性修改:
3.1 、字符编码修改,如图11-7 所示,在实际项目中一定要统一字符编码:
图11-7 修改项目字符编码
3.2 、类路径输出修改,如图11-8 ,将类路径输出改为/WEB-INF/classes 下:
图11-8 类路径修改
4 、准备jar 包:
4.1 、Spring 项目依赖包,到下载的spring-framework- 3.0.5 .RELEASE-with-docs.zip 中拷贝如下jar 包:
dist/org.springframework.context-3.0.5.RELEASE.jar
dist/org.springframework.core-3.0.5.RELEASE.jar
dist/org.springframework.expression-3.0.5.RELEASE.jar
dist/org.springframework.jdbc-3.0.5.RELEASE.jar
dist/org.springframework.orm-3.0.5.RELEASE.jar
dist/org.springframework.transaction-3.0.5.RELEASE.jar
dist/org.springframework.web-3.0.5.RELEASE.jar
4.2 、Spring 及其他项目依赖包,到spring-framework- 3.0.5 .RELEASE-dependencies.zip 中拷贝如下jar 吧:
com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.beanutils-1.8.0.jar
com.springsource.org.apache.commons.collections-3.2.1.jar
com.springsource.org.apache.commons.digester-1.8.1.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
com.springsource.org.apache.taglibs.standard-1.1.2.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
hibernate3.jar
lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar
lib/required/dom4j-1.6.1.jar
lib/required/javassist-3.12.0.GA.jar
lib/required/jta-1.1.jar
lib/ required /slf4j-api-1.6.1.jar
lib/required/antlr-2.7.6.jar
lib/proxool-0.9.1.jar
lib/proxool-cglib.jar
mysql-connector-java-5.1.10.jar
slf4j-log4j12-1.6.1.jar
lib/ognl-3.0.jar
lib/struts2-spring-plugin-2.2.1.1.jar
lib/commons-fileupload-1.2.1.jar
jar包终于准备完了,是不是很头疼啊,在此推荐使用maven进行依赖管理,无需拷贝这么多jar包,而是通过配置方式来指定使用的依赖,具体maven知识请到官方网站http://maven.apache.org/了解。