基于J2EE轻量级框架电子拍卖系统

点赞:4618 浏览:13926 近期更新时间:2024-04-09 作者:网友分享原创网站原创

摘 要 :本文在分析传统J2EE架构缺点的基础上,提出了基于J2EE轻量级框架设计电子拍卖系统的设计原理、功能和架构,分析了轻量级框架体系结构特点.采用MVC设计模式,整合三大框架设计的电子拍卖系统具有良好的稳定性、灵活性、松散耦合、易扩展、易维护等特点.

关 键 词 :J2EE框架;轻量级;电子拍卖;电子商务

中图分类号:TP31文献标识码:A

近年来,电子商务迅速发展,基于Web开发应用程序越来越复杂化,开发周期越来越长,对于开发者来说,如何快速开发出伸缩性强、重用性高、易维护的Web应用已成为关注的焦点.虽然传统J2EE可满足企业级应用,但存在缺点,并且基于EJB的传统J2EE开发方式,在解决企业级应用太过于复杂化,于是提出基于J2EE轻量级框架开发电子拍卖系统.


1.J2EE架构

J2EE(Ja2 Platform Enterprise Edition)是开放的、基于标准的平台,用于开发、部署和管理N层结构,面向Web的、以怎么写作器为中心的企业级应用.它是一套体系结构,也是一种技术规范.它支持平立、可移植、提供组件重用策略、一致化的安全模型以及灵活的事务控制特性.

J2EE应用是分布式的架构,它把应用程序分层,不同的层一般运行在不同的机器上.应用程序有几种分层模型:单层,两层,三层,N层.目前大多数企业级应用使用多层应用模型,其优点:每一层可被单独改变,而无需其他层的改变;降低部署与维护的开销;资源可被缓冲和重复利用;提高了灵活性、可伸缩性.

J2EE分层结构如下:

(1)客户层:J2EE应用可以是基于Web的,也可以是不基于Web的.在基于Web的J2EE应用中,浏览器运行在客户层中,它从一个Web怎么写作器上下载Web层的静态HTML页面或由JSP或Servlet生成的动态HTML页面,从而显示在浏览器中.在不基于Web的J2EE应用中,客户端可以是Ja程序,还可以是包括一个JaBean类来管理用户输入,并将该输入发送到在业务层中运行的EJB组件来处理.

基于J2EE轻量级框架电子拍卖系统参考属性评定
有关论文范文主题研究: 关于数据库的论文例文 大学生适用: 学院论文、学位论文
相关参考文献下载数量: 11 写作解决问题: 如何写
毕业论文开题报告: 文献综述、论文目录 职称论文适用: 论文发表、职称评初级
所属大学生专业类别: 如何写 论文题目推荐度: 最新题目

(2)Web层:J2EE Web组件可以是JSP页面以及显示HTML页面的Servlet组成,调用Servlet或JSP页面的HTML页面,在应用程序组装时与Web组件打包在一起.Web层可能包括JaBeans来帮助JSP和Servlet完成某些功能,JSP通常使用JaBeans和业务层中的EJB组件交互.运行在客户层的Web组件依赖容器例如支持客户请求和响应等功能.

(3)业务层:业务层为底层业务怎么写作组件提供必要的接口.业务组件通常为运行在EJB容器里的EJB组件.EJB组件从客户程序处接受数据,对数据进行处理,再将数据发送到企业信息系统层存储.同时EJB组件也可从数据层获取数据,并将数据处理后返回客户端程序.业务层和Web层构成了J2EE应用的中间层.

(4)企业信息系统层:它运行企业信息系统软件,包括企业基础设施系统,例如企业资源计划、大型机事务处理、数据库系统及其他遗留信息系统.J2EE应用组件由于某种原因可能需要访问企业信息系统层.

1.1传统J2EE架构

企业级应用开发中,业务逻辑是企业级应用的核心.在传统J2EE应用开发中,通常使用EJB组件实现业务逻辑,EJB组件是J2EE企业开发平台最核心的部分[1],EJB组件有三种类型:会话Bean 、实体Bean、消息驱动Bean.其中会话Bean分为有状态会和无状态两种;多用户时,无状态会话Bean运行效率高于有状态会话Bean.有状态会话Bean可以一对一地维持每个调用客户的状态,并且在不同的方法调用中维持这个状态.客户的状态在会话Bean的实例变量中维护,要生成有状态会话Bean,需要在Bean实现类中声明实例变量.无状态会话Bean不能维持一个调用客户的状态,当方法执行完毕,状态不会被保持,而是不能在多个方法调用之间保持状态.在调用完成后,无状态会话Bean被立即释放到缓冲池中,无状态会话Bean具有很好的伸缩性,可以支持大量用户的调用.按照Bean提供的接口可以分为本地接口和远程接口Bean.本地接口可以和客户端在同一个JVM里运行,不能提供远程调用,但它效率高,适合于细粒度组件.远程接口Bean必须通过远程调用方法调用,并且成本高,适合于粗粒度组件.实体Bean代表持久的存储对象.实体Bean分为两种:Bean管理持久化(BMP)、容器管理持久化(CMP).BMP组件由Bean开发者自己管理Bean和它所代表的数据库记录的同步;CMP组件由容器自动管理Bean和它所代表的数据库记录的同步,不需要Bean开发者提供数据访问的各种细节.如果使用实体Bean,最好选择带本地接口的CMP组件实体Bean,因为带远程接口的实体Bean在远程调用时浪费资源,而且在性能上也存在风险.消息驱动Bean集成了Ja消息怎么写作和企业Bean的功能.消息驱动的EJB不直接与客户交互,它是JMS消息.客户把消息发送给JMS目的地,之后,JMS提供者和EJB容器协作,把消息发送给消息驱动的EJB.

1.2轻量级J2EE架构

不使用EJB组件,也可进行J2EE应用开发.在J2EE应用开发中,由于EJB组件存在优势和不足,为此采取EJB的优点,去除缺点,使不使用EJB的J2EE体系结构更加成熟[2].本文提出基于Struts2+ Spring + Hibernate体系结构称为J2EE轻量级架构.

1.2.1Struts2(表示层框架)

Struts2是以WebWork优秀设计思想为核心,吸收了Struts1部分优点,建立一个兼容WebWork和Struts1的MVC框架[3].

Struts2优点:

(1)支持多视图表示.Struts2支持JSP、XML、FreeMarker等表现层技术,可与多种视图技术整合,为开发者提供多种适应性.

(2)Struts2 Action类可以实现一个Action接口,也可以实现其他接口,使可选和写作的怎么写作成为可能.

(3)在软件设计上Struts2没有耦合Servlet API和Struts2 API,属于非侵入式设计,当系统重构时,Struts2中Action可复用,提高了代码的复用率;在应用上Struts2中Action可以不依赖于Servlet API和Struts2 API,从而允许Action脱离Web容器运行,降低测试难度.

(4)模块化.Struts2把模块化作为体系架构中的基本思想,可以通过三种方法将应用程序模块化:将配置信息拆分成多个文件;把自包含的应用模块创建为插件;创建新的框架特性,即将与特定应用无关的新功能组织成插件,以添加到多个应用中去.

1.2.2 Spring(业务逻辑层框架)

Spring是非常优秀的轻量级开源MVC框架.它的主要核心是IoC容器和AOP机制.其中IoC容器负责创建、管理应用组件.从最前端的控制器,到中间层的业务逻辑组件,以及底层的DAO组件,都在IoC容器的管理下,以低耦合的方式运行.AOP机制以IoC容器为基础,用于处理系统中分布于各个模块中的交叉关注点的问题.

Spring优点:

(1)独立于各种应用怎么写作器,低侵入式设计,代码的污染极低.

(2)Spring的DI容器降低了业务对象替换的复杂性,提高了组件之间的解耦.

(3)Spring的AOP容器允许将通用任务如安全、事务、日志等进行集中式处理,从而提供更好的复用.

(4)Spring的ORM和DAO提供了与第三方持久层框架的整合,简化了底层的数据库访问.

(5)Spring高度的开发性,开发者可根据自己的需要选择使用某一个模块.

Spring致力于J2EE应用各层解决方案,它是企业级应用开发“一站式”选择,并贯穿于表现层、业务逻辑层和持久化层.Spring为企业应用开发提供轻量级解决方案,包括依赖注入核心机制、基于AOP声明式事务管理、与多种持久化层技术及优秀的WebMVC框架整合功能[4,5].

1.2.3 Hibernate(持久层框架)

Hibernate是目前最优秀、使用最广泛的O/RM(对象关系映射)框架.其基本特征:完成面向对象的程序设计语言到关系数据库的映射.因此Hibernate是面向对象程序设计语言和关系型数据库之间的桥梁,允许程序开发者采用面向对象的方式操作关系数据库[6].因为有了Hibernate的支持,使得J2EE应用开发过程的OOA、OOD、OOP三个过程一脉相承,成为一个整体.

Hibernate优点:

(1)在操作数据库时,会自动生成SQL语句.

(2)它是基于Ja开放源代码持久化中间件.

(3)它对JDBC进行轻量级对象封装,可应用在任何使用JDBC场合,既可以在Ja的客户端程序使用,也可以在Servlet/JSP的Web应用中使用.最具革命意义的是,Hibernate可以在使用EJB组件的J2EE架构中取代CMP,完成数据持久化的重任.

(4)它使用Ja反射机制而不是字节码增强程序来实现透明性.

(5)它的性能非常好,因为它是个轻量级框架.映射的灵活性很出色.

(6)它支持各种关系型数据库,映射一对一到多对多的各种复杂关系.

(7)它作为J2EE持久化的解决方案,使用传统 POJO作为系统的持久化类,具有低侵入式设计,不会造成代码污染.同时系统的持久化类无需继承任何Hibernate基类或者实现任何Hibernate接口,提供了极好的代码复用.

1.2.4三种轻量级框架整合

轻量级框架整合是利用Struts2、Spring和Hibernate的各自优势互补进行开发的,通过配置文件将Struts2、Spring和Hibernate集成起来,实现多层开发,达到高内聚、低耦合的目的.

三大框架整合如下:

(1)表示层:Web客户端发送HTTP请求,调用Web控制器(web.xml)初始化Spring上下文加载,加载application-context.xml,之后在Web.xml中定义Struts2核心控制器FilterDispathcer,初始化Struts2并处理所有用户的WEB请求,然后将它的请求转发给ActionProxy,ActionProxy根据请求的action名字在struts.xml中找到相应的Action.

(2)业务层:Action把请求转发给业务逻辑控制器,由业务逻辑控制器调用模型中相应的业务逻辑方法,模型调用DAO,把DAO实现类注入到Spring容器中,由Spring把各个组件装配在一起.DAO负责访问数据库,把Hibernate配置文件、SessionFactory、事务管理器以及事务传播特性注入到Spring容器中,由容器统一管理.

(3)持久层:DAO实现类继承HibernateDaoSupport类并实现DAO,通过Hibernate模板直接操作数据库,对数据表增、删、改、查操作.

最后把DAO组件依赖注入到相应的Service实现类中,它实现Service接口.业务逻辑层处理完毕,将返回的结果交给ActionProxy,ActionProxy根据Action处理后返回的字符串,在struts.xml中找到与字符串匹配的结果,根据名字得到相应的视图资源,再发出HTTP响应客户端请求.

2.电子拍卖系统设计

2.1设计原理

目前,最具有代表性的电子商务形式有:B2B企业之间业务、B2C企业与消费者之间交易、G2C政府与消费者或市民之间业务、C2C消费者与消费者之间交易.在该系统中写卖双方都为顾客,属于C2C电子商务形式.根据系统特点,采用B/S结构设计,实现在线拍卖功能.

2.2功能介绍

该系统模拟eBay系统的部分功能,主要实现电子拍卖系统中的核心功能.本系统要求用户参与拍卖之前,必须登录系统.本系统提供了系统登录验证,登录验证通过Struts2的实现,拦截用户Session,判断Session中是否保存了当前用户ID,如果保存了用户ID,说明用户已经登录,否则没有登录.

对于物品的管理,本系统可以查询拍卖物品,添加拍卖物品,增加物品种类,竞价处理,以及发送邮件通知用户所参与的竞价.

注册用户可以添加用户物品和物品种类.添加之前必须登录系统,每个Action中并不判断用户是否登录,而是通过Struts2的完成功能,从而提供更好的代码复用.

注册用户可以浏览当前拍卖中的物品以及流拍的物品.

注册用户可以参与竞价,参与的竞价系统将发送邮件通知用户.

2.3系统架构

本系统严格采用J2EE的三层架构,分为表示层、业务逻辑层和数据怎么写作层.三层体系将业务规则、数据访问及合法性验证等工作放到中间层处理,客户端不直接与数据库交互,而是通过控制器与中间层建立联系,再由中间层与数据库交互[7,8].系统架构如图1所示,系统三层架构的具体功能如下:

表示层在JSP页面中使用Struts2标签显示数据,生成页面显示效果.

中间层采用Struts2+ Spring + Hibernate,为了分离控制层与业务逻辑层又可细分为:

(1)Web层,就是MVC模式里的“C”(Controller),负责表示层与业务逻辑层的交互,调用业务逻辑层,并将业务数据返回给表示层显示.

(2)Service层(业务逻辑层),负责实现业务逻辑,对DAO对象进行正面模式的封装.

(3)DAO层(数据访问对象层),负责与持久化对象交互,封装了数据的增、删、改、查原子操作.

(4)PO层(持久化对象层),通过实体/关系映射工具将关系数据库中的数据映射成对象,实现以面向对象方式操作关系数据库.

通过使用Struts2,提供了良好的MVC模式,所有的用户请求都由Struts2的Action负责拦截,然后通过Spring提供自动装配功能,定位Spring容器中的业务逻辑组件,调用业务逻辑组件方法处理用户请求.

数据怎么写作层使用Oracle关系数据库存储数据.

3.电子拍卖系统实现

实现原理以Spring为核心,承上启下.向上管理表示层,向下管理业务逻辑层组件,同时负责管理业务逻辑层所需的DAO对象,负责在各层之间传值的是值对象.

3.1实现持久化层

为实现Hibernate持久层,需定义实体类以及对应的映射文件.根据该系统实现的功能需要定义的实体类为:用户、物品、物品种类、物品状态、竞价记录,这5个实体类分别对应各自的数据表,Hibernate可通过各自的PO类来访问数据表.为了进行数据持久化访问,必须增加映射文件,映射文件负责完成持久化类和数据表之间的映射关系.其中每个持久化类对应数据库中的一张表,持久化类中的每个属性对应数据表中的字段,持久化类的每个实例对应数据表中每一行记录.

3.2实现业务逻辑层

业务逻辑层采用面向接口编程原则,为了让系统中的控制器不依赖于业务逻辑组件的实现类,而依赖于业务逻辑组件的接口,达到降低系统重构的代价.该系统中使用Spring邮件抽象层,当用户竞价成功后,系统向竞价成功的用户发送邮件进行通知.还使用Spring任务调度机制判断系统中拍卖物品的状态,该任务每隔一段时间会自动执行,不用以硬编码的方式编写在程序中,而是通过Spring的配置文件完成.由于Spring AOP提供声明式事务管理功能,所以在业务逻辑组件方法内无须编写事务管理代码,将事务管理写在配置文件中,由Spring 容器管理事务.

3.3实现Web层

系统使用Struts2作为前端MVC框架,控制层由Struts2 Action充当,Action负责调用系统业务逻辑方法处理用户请求,并将处理后的结果放入值栈,在JSP页面中使用Struts2标签显示结果.在Struts2中使用FilterDispatcher过滤拦截*.action的请求,并将用户请求直接转入到Struts2框架内.通过这种方式,对于普通的页面也必须经过Struts2过滤,保证了用户无法直接浏览任何页面,提高系统安全性.

结论

开发表明,基于Struts2+Hibernate+Spring的J2EE轻量级框架优点:

(1)开发工作变得简单有效,开发者只负责分析系统业务,不必关注与业务逻辑无关的底层技术问题.

(2)大大提高企业级应用开发生产力,开发周期明显缩短,开发成本降低.

(3)系统部署到怎么写作器上运行稳定,性能较高.

(4)系统易于维护和管理.

(5)电子拍卖系统具有松散耦合、结构清晰、伸缩性强、可扩展性好、重用性高等特点.