基于SSH电子商城毕业论文 - 图文(4)

2019-03-29 08:11

AspectJ等工具将它们织入到系统出供业务对象使用。这是系统建模中抽象层次的进一步提升,可以得到结构清晰、模块化强、代码问耦合度低、易于重用和维护的系统。

Spring体系结构

Spring框架由7个定义良好的模块(组件)组成,各个模块可以独立存在,也可以联合使用。

(1)Spring Core:核心容器提供了Spring的基本功能。核心容器的核心功能是用Ioc容器来管理类的依赖关系.Spring采用的模式是调用者不理会被调用者的实例的创建,由Spring容器负责被调用者实例的创建和维护,需要时注入给调用者。这是目前最优秀的解耦模式。

(2)Spring AOP:Spring的AOP模块提供了面向切面编程的支持。SpringAOP采用的是纯Java实现。Spring AOP采用基于代理的AOP实现方案,AOP代理由Ioc容器负责生成、管理,依赖关系也一并由Ioc容器管理,尽管如此,Spring Ioc容器并不依赖于AOP,这样我们可以自由选择是否使用AOP。

(3)Spring ORM:提供了与多个第三方持久层框架的良好整合。

(4)Spring DAO: Spring进一步简化DAO开发步骤,能以一致的方式使用数据库访问技术,用统一的方式调用事务管理,避免具体的实现侵入业务逻辑层的代码中。

(5)Spring Context:它是一个配置文件,为Spring提供上下文信息,提供了框架式的对象访问方法。Context为Spring提供了一些服务支持,如对国际化(i18n)、电子邮件、校验和调度功能。

(6)Spring Web:提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的applicationContext.

(7)Spring MVC:提供了Web应用的MVC实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特性。

2.3Struts、Hibernate和Spring的整合

本章的前部分,我们已经了解了轻量级JAVA EE分层的设计模式,在Java界多种优秀框架在对应层找到了自己的位置。如表示层有:Struts、WebWork、Velocity、JSF、Tapestry等。持久层有:Hibernate、Entity EJB、iBATIS、TopLink、OJB等;将各层的开源框架有机的整合在一起作为软件系统的主体架构,使得系统具各高度的可扩展性、可维护性。在各种整合的方案中,struts+hibernate+spring已成为JAVAEE应用开发的主流体系。

2.3.1Spring整合Hibernate

Spring以其开放性,能与大部分ORM框架良好的整合.这样Spring就能轻松地使用ORM。

Spring提供了DAO支持,DA0组件是应用的持久层访问的重要组件,我们把主要精力集中在数据的管理口上。

此外,Spring还提供了一致的异常抽象,不需要在编码时显示的捕获各种特定的异常。

通过Bibernate进行数据持久层操作时,Hibernate的Session接口提供了基本的数据访问方法,获得Hibernate Session对象方法是要实现Hibernate的SessionFactory接口,SessionFactory接口极为重要,它是单个数据库映射关系编译后的内存镜像,负责打开、关闭和管理Session。Hibernate访问时,需要手动创建SessionFactory实例,这是繁琐的工作,我们希望能以声明式的方式管理SessionFactory实例。Spring的loc容器提供了这种方式,通过配置文件的配置管理SessionFactory实例,使用Spring管理Session对象,使用Spring实现声明式的事务管理。

下面是Spring对Hibernate的整合时的关键步骤。

1、在Spring的配置文件ApplicationContext.xml中配置Hibernate对SessionFactory的设置。如下面的示例代码。

class=\

cn/itcast/shop/user/vo/User.hbm.xml

当Spring的IoC容器配置了SessionFactory Bean,它随应用的部署启动而加载,可以利用Spring依赖注入特性将该Bean注入其它Bean。我们由配置文件还可以看出,以声明式的方式管理SessionFactory时,可以让应用在不同数据源间切换,一旦持久层服务发生改变,程序代码不需要改动,只需修改配置文件即可,使得系统的可维护性加强。

2、使用Spring中的HibernateDaosupport和HibernateTemplate类简化Hibernate DAO实现类的编写,完成数据持久化的操作。

3、通过Spring的事务机制进行统一的事务管理。Spring可以采用编程式和声明式两类事务管理。声明式的事务管理更灵活。可以在Spring中使用注解式的声明式事务管理:

class=\

2.3.2Spring整合Struts2

Spring也提供了MVC模式的支持,但Struts是比较单纯的MVC框架,开发中更倾向Spring和Struts整合开发。

Struts和Spring的整合比较简单顺畅。整合关键点是:将Struts中的Action的实例生成不再由Struts负责,而交给Spring容器管理,主要目的是让控制器与业务逻辑组件实现分离。基于该目的,我们采用工厂模式策略,让Spring容器管理Action,利用IoC的依赖注入特性为控制器注入业务逻辑组件。Struts只单纯扮演控制器的角色。

下面是Spring和Struts整合的关键步骤。

Struts的核心控制器必须能装载Spring的应用程序环境。 Spring和Struts整合有两种方式

1、Struts2的Action由Struts2框架自身创建. 2、Struts2的Action交给Spring框架创建.

我们推荐使用第二种方式,因为第二种方式,Action类由Spring容器进行管理,可以方便的对Action类进行AOP的编程.但第二种有一个关键地方:就是在Struts2框架创建Action类的时候,默认是多例的.而Spring容器在管理类的时候,默认创建是单例的.单例的这种方式就容易产生线程安全问题.所以一定要配置类的scope属性.

在Spring的配置文件中:

在Struts的配置文件中:

2.3.3Struts2、Hibernate和Spring的整合开发

将两组整合放在一起进行开发,就可以进行三者的组合开发。在进行三者整合开发时,一般可以采取由上往下和由下往上的分层开发的原则,多数实际项目开发,往往采用后者的开发模式,即:

(1)从底层开发,先开发领域对象,即一些实体类,这些领域对象会在各层之间进行传递,利用Hibernate做好领域对象和数据库表的映射关系。

(2)DAO层的开发。它是专门独立出来对数据进行持久化,即处理数据的CRUD操作,也是利用Spring对Hibernate提供的DAO支持类HibernateDaoSupport来实现的。每个DAO组件对应一个数据库表。

(3)Service层的开发。这层主要是具体业务组件开发,主要用于处理各类业务逻辑,并且能隔离事务和对其他资源调度。

(4)Action层开发。主要是处理Web请求,由Spring进行管理。

2.4前台分页方法改进

目前java世界里分页方法有很多,针对不同的用途分页也不同,所采用的分页原理也不一样。有些分页方法是一次性把所有数据都查询出来,然后再根据当前的ID号来确定要显示哪一页,此种方法是能实现数据分页,但是每次取数据都要把所有的数据都查询出来,这样做不利于提高查询的速度。有些分页方法则是根据当前页的首ID和尾ID号来确定上一页和下一页的内容,每次点击上一页或下一页都去数据库把相应的数据查询出来,这种做法是提高了查询的速度,但是每次查询都要访问数据库,增加了数据库服务器的负担,运行效率不高。本系统前台采用的分页方法原理是,第一次查询时把所有要查询的数据都从数据库里查询出来,然后把这些数据放到一个session中缓存起来,以后再查询时就从session缓存中去取需要的数据,这种做法的优点在于,只访问一次数据库减少了对数据库服务器的负担,把数据缓存在本地,每次查询速度比去直接访问数据库查询要快得多。采用此种分页方法既减少于数据库的访问,又提高了数据查询速度,可谓是一举两得。

2.5数据库设计

本系统采用的数据库为Mysql5.0,本系统所有与数据库相关的开发都遵从Mysql5.0数据库开发原则。本系统数据库开发定义名词如下:

1. ‘*’:主关键字符号; 2. ‘PK’:主关键字缩写; 3. ‘+’:外关键字符号; 4. ‘FK’:外关键字缩写; 5. ‘&’:复合关键字符号; 6. ‘CPK’:复合关键字缩写; 7. ‘UNIQUE’:唯一索引; 各数据表描述: 数据表 adminuser category categorysecond

描述 后台管理员表 一级分类表 二级分类表

orderitem orders product user 订单项表 订单表 商品表 前台用户表 2.4.1数据库字典

表名:adminuser解释:后台管理员表 ADMINUSER(adminuser) 是否主键 是

表名:category解释:一级分类表 CATEGORY(category) 是否主键 是 字段名 cid cname 字段描述 数据类型 长度 可空 约束 缺省值 11 是 备注 字段名 uid username password 字段描述 管理员编号 管理员名 管理员密码 数据类型 长度 可空 约束 缺省值 INT(11) 11 是 是 备注 VARCHAR(50) 50 VARCHAR(30) 20 一级分类编号 INT(11) 一级分类名 VARCHAR(50) 50 表名:categorysecond解释:二级分类表 CATEGORYSECOND(categorysecond) 是否主键 是 字段名 csid csname cid 字段描述 数据类型 长度 可空 约束 缺省值 11 是 外键 备注 二级分类编号 INT(11) 二级分类名 VARCHAR(50) 50 11 一级分类编号 INT(11) 表名:orders解释:订单表 ORDERS(orders) 是否主键 是

字段名 oid total ordertime state name phone addr 字段描述 订单编号 订单总金额 订单时间 订单状态 收货人名 收货人电话 收货人地址 数据类型 长度 可空 约束 缺省值 INT(11) DOUBLE datetime INT(11) 11 0 20 11 是 是 是 是 是 是 备注 VARCHAR(20) 20 VARCHAR(20) 20 VARCHAR(50) 50


基于SSH电子商城毕业论文 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中北大学物理性污染控制考试试题1 (2)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: