网上书店项目的架构和设计

  • 格式:ppt
  • 大小:1.88 MB
  • 文档页数:46

下载文档原格式

  / 46
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.开发业务层 在src目录下建立包org.easybooks.bookstore.service,包中安置一个 IUserService接口。 IUserService接口代码如下: package org.easybooks.bookstore.service; import org.easybooks.bookstore.vo.User; public interface IUserService { public User validateUser(String username,String password); public User registerUser(User user); //实现(注册+登录)的Service } UserService类代码所示。
各功能模块的划分如图4.2所示。
架构设计的基本宗旨是尽量做到各模块的独立性(理想情况:一个功 能对应一个JavaEE组件),功能实现与界面开发相分离,互不干扰。
为了达到上述的功能需求并实践这个设计宗旨,在第三章SSH2多框架配合 的基础上还必须引入一个业务层(Service层)。 那么,业务层有什么作用呢? 通过之前的实践,我们知道,DAO接口能将操作数据库的动作细节与前端 代码相隔离,但是DAO所封装的仅仅是最基本的数据库操作,而实际应用中 Web网站的每一项功能往往都是以业务(Service)的形式提供给用户的,业务 就是一组(包括增、删、改、查在内的)操作数据库的动作序列,对系统某个 应用功能的优化和增强,通常要对该功能对应业务中动作的种类、数目和调用 次序进行改变和重组。
例如,登录功能的实现原来只要调用DAO接口的validateUser( )方法就行, 现在情况发生了变化,考虑到有新加入的用户起初连帐号也没有,需要先注册 再登录,为了方便操作,增强的登录功能要求先后调用DAO接口的saveUser()
(用于注册)和validateUser()两个方法。通行的做法是将这两个动作
IUserDAO接口代码如下: package org.easybooks.bookstore.dao; import org.easybooks.bookstore.vo.User; public interface IUserDAO { public User validateUser(String username,String password); public void saveUser(User user); } UserDAO类代码所示。
7.开发Action控制块 LoginAction.java代码所示。 struts.xml文件内容如下:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="struts" extends="struts-default"> <action name="login" class="login"> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> </action> <action name="register" class="login" method="register"> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> </action> </package> </struts>
4.1ቤተ መጻሕፍቲ ባይዱ4.2
网上书店的架构 搭建项目框架 注册、登录和注销功能开发
4.3
4.1.1 功能需求和展示 1.主界面 网上书店购书界面如图4.1所示。
2.功能模块 网上书店是一个典型的基于Web网站的Java EE软件系统,集成了诸多的功 能模块,主要包括: (1)显示图书分类。 (2)用户可以根据分类浏览某一类图书列表。 (3)用户可以查看具体某一本书的简介。 (4)在图书浏览页只要单击【购买】按钮,就可把选定的图书加入购物车 中。 (5)用户可以随时单击 ,查看车中已购图书的信息。 (6)已登录的用户可以单击【结账】按钮下订单。 (7)使用需先注册,在注册页填写个人信息,确认有效后成为新用户。 (8)用户在登录页填写用户名和密码,确认正确后才可结账。
实践任务:
在三个框架全整合的基础上,开发一个业务层,给Web登录而程序增加一个 服务(注册+登录)的功能。建立项目: jsp_struts2_spring_service_dao_hibernate。
1.添加Spring核心容器
2.添加Hibernate并持久化user表 3.添加Struts 2框架 4.Struts 2与Spring集成 ① 添加Spring支持包。 ② 配置web.xml文件。 打开web.xml文件,增加Spring的配置,代码所示。 ③ 创建struts.properties。 在src目录下创建struts.properties文件,把Struts 2的类的生成交给Spring完成: struts.objectFactory=spring;
( saveUser()和validateUser() )进一步封装为一个服务(Service),前端 代码直接使用这个Service,无须关心为实现它而对DAO接口中的基本方法是如 何组织调用的。 这些Service构成了业务层,从编码的视角来看,这层是最容易忽视的。往 往在用户界面层或持久层周围能看到这些业务处理的代码,这其实是不正确的。 因为它会造成程序代码的高耦合,随着时间的推移,这些代码将很难维护。 通过一个程序示例来加深理解。
5.开发DAO层 BaseDAO代码如下: package org.easybooks.bookstore.dao; import org.hibernate.SessionFactory; import org.hibernate.Session; public class BaseDAO { private SessionFactory sessionFactory; public SessionFactory getSessionFactory(){ return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory){ this.sessionFactory=sessionFactory; } public Session getSession(){ Session session=sessionFactory.openSession(); return session; } }