基于Struts2+Spring+JDBC构建企业级WEB应用的设计与实现

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:qwedddessf
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]为了减少开发成本,缩短开发周期,提高程序的健壮性和可扩展性,依据MVC设计模式的基本思想,提出一种基于Struts2,Spring框架和JDBC的J2EE应用开发策略,以此构建一个开发高效、运行稳定的J2EE分层架构。通过设计开发一个某电信运营商的子业务运营系统给出了该架构的具体实现。实用结果表明,该分层架构降低了应用程序的耦合度和复杂性,提高了开发效率。
  [关键词]MVC; Struts2 ; Spring ; JDBC
  中图分类号:TP311 文献标识码:A 文章编号:1009-914X(2015)42-0262-02
  引言
  在J2EE的企业级应用开发中,JSP用HTML与Java代码混用的方式开发,把表现与业务逻辑代码混合在一起给前期开发与后期维护带来巨大的复杂度。为了把业务逻辑代码从表现层中清晰的分离出来,MVC设计模式和框架技术被广泛采用。
  1 MVC简介
  M=Model模型。职责是负责业务逻辑,包含两部分:业务数据和业务处理逻辑,比如实体类、DAO、Service都属于模型层。
  V=View视图。职责是显示界面和用户交互(收集用户信息),属于视图的类是不包含业务逻辑和控制逻辑的JSP。
  C=Controller控制器。控制器是模型层M和视图层V之间的桥梁,用于控制流程,比如Action。
  2 Struts2和Spring框架
  2.1 Struts2框架
  2.1.1 简介
  Struts1是一个非常著名的框架,它实现了MVC模式。之后出现了WebWork框架,其实现技术比Struts1先进,但影响力不如Struts1。在框架技术不断发展的过程中,有人在WebWork的核心XWork的基础上包装了Struts1,由此,结合了Struts1的影响力和WebWork的先进技术,Struts2诞生了。Struts2不是Struts1的升级,它更像是WebWork的升级版本。
  2.1.2 Struts2的核心组件和工作流程
  如图1所示,Struts2由6大核心组件组成,分别是FC(前端控制器),ValueStack(值栈),Action(动作),Result(结果),Interceptor(拦截器),Tags(标记库)。
  Struts2的工作流程为:所有请求提交给FC;根据配置信息确定要调用的Action;创建一个ValueStack对象;创建Action对象,把Action对象放到VS的栈顶;控制器调用Action对象接收请求参数,并在方法中根据输入属性算输出属性;在调用Action之前或之后调用一系列Interceptor;根据Action返回的字符串确定Result;Result将转发到JSP,JSP页面用Tags取出数据并显示。
  2.2 Spring框架
  2.2.1 简介
  Spring框架主要负责技术整合,该框架提供IoC和AOP机制。利用Spring容器管理程序中的Action、DAO等组件,通过容器的IoC机制,可以降低Action、DAO之间的耦合度;利用AOP进行事务管理等通用部分的处理。基于这些特性整合,可以降低系统组件之间的耦合度,便于系统组件的维护、扩展和替换。
  2.2.2 IoC和AOP
  IoC,Inverse of Controller被称为控制反转。所谓的控制指的是负责对象关系的指定、对象创建、初始化和销毁等逻辑。
  如图2所示,Spring容器在Tomcat服务器启动时,由web.xml中定义的ContextLoaderListener监听器创建。IoC把Action中的控制逻辑提出来,交给Spring容器负责,当两个组件关系发生改变时,只需要修改容器的配置文件即可。IoC主要解决的是两个组件对象调用问题,可以以低耦合方式建立使用关系。
  AOP,Aspect Oriented Programming,被称为面向方面编程。对单个对象(一对一)的解耦用IoC,而当有个共通组件,它对应多个其他组件(一对多),则解耦用AOP,如拦截器。这也是为何在程序中大量的用IoC,而AOP却用的很少,因为程序中不可能有很多的共通部分。如图2所示,在调用Action组件时采用AOP切入事务管理。
  3 JDBC
  3.3.1 简介
  Java的设计者希望使用相同的方式访问不同的数据库。如图3所示,JDBC是Java用于统一连接数据库并操作数据库的一组通用接口定义。不同的数据库厂商若想让Java语言可以对其操作,就需要实现一组类,这组类需要实现Java提供的这组用于连接数据库的接口,并实现其中定义的相关方法。这组类就是该数据库的驱动包了。
  3.3.2 Spring框架使用JDBC技术
  jdbcTemplate是Spring提供的专门简化JDBC操作的工具类,它封装很多针对JDBC操作的方法,减少了直接使用JDBC的代码量。开发时,写好SQL语句,通过jdbcTemplate对象直接调用即可。
  4 基于Struts2+Spring+JDBC的某电信运营商的子业务运营系统的设计与实现
  4.1 软件层次架构设计
  如图4所示,系统软件层次架构从职责上分为:持久层、业务逻辑层和表示层。
  系统的整体基础架构采用Struts2框架实现MVC。作为三层中间层的Spring框架,向前与Struts2整合,管理Action和DAO,向后与JDBC整合,封装JDBC API。Spring管理系统中所有的组件:事务管理采用AOP,各组件之间的依赖关系通过IOC来管理,这些都配置在Spring的核心配置文件applicationContext.xml文件中。   JDBC对持久层提供支持,具体做法是根据数据表编写实体类,设计DAO接口,然后用JDBC实现DAO接口。
  采用三层软件架构,不但实现了持久层与业务逻辑层的分离,而且还实现了视图、模型、与控制器的分离,提高了系统的可复用性和可扩展性,同时降低了层与层之间的耦合度,不光能提高开发效率,而且有利于团队成员并行工作。
  4.2 E-R模型图
  如图5所示,多对多的关系是:admin_info(管理员)与role_info(角色);role_info(角色)与privilege(权限)。一对多的关系是: account(账务账号,1)与service(业务账号,n);cost(资费,1)与service(业务账号,n);service(业务账号,1)与service_update_bak(业务账号更新的备份,n);recommender_id (账务账号的推荐人,1)与account(账务账号,n)。根据E-R图,共创建6张基本表,2张中间表,PRIVILEGE权限为XML文件。
  4.3 系统功能模块设计
  如图6所示,系统按照功能分为如下几个模块:基础信息模块、角色管理模块、管理员管理模块、资费管理模块、账务账号管理模块和业务账号管理模块。
  4.4 系统实现的部分代码
  1.账务账号模块Action
  包含:DeleAccountAction(删除)、FindAccountAction(查找)、PauseAccountAction(暂停)、StartAccountAction(开启)、ToUpdateAccountAction、UpdateAccountAction(更新)。
  2.账务账号模块DAO
  IAccountDao接口包含如下方法
  List findByCondition(String idcardNo,String realName,
  String loginName,String status,int page,int pageSize)throws DaoException;
  int findTotalPage(String idcardNo,String realName,
  String loginName,String status,int pageSize)throws DaoException;
  void updateStatus(Account account)throws DaoException;
  void add(Account account)throws DaoException;
  Account findByIdcardNo(String idcardNo)throws DaoException;
  Account findById(int id)throws DaoException;
  void modify(Account account)throws DaoException;
  Account findByService(int serviceId)throws DaoException;
  接口实现类为:AccountDAOImpl,其具体实现接口中定义的方法。
  3、三个核心配置文件
  ① web.xml文件。配置Spring监听;配置Struts2的过滤器。
  ② applicationContext.xml文件。配置事务切入点、事务管理器、DBCP连接池、注册各模块Action和DAO。
  ③ struts.xml文件。配置项目中各模块的Action及result返回结果页面。
  5 结语
  实践证明,使用MVC设计模式开发的系统结构更加清晰,且易于管理。引入框架,使得系统的健壮性,易用性,扩展性和侵入性都得到了极大的改善。Struts2框架提供了稳定的MVC框架,Spring的IoC和AOP成为整合该方案各层的最佳框架。另外,考虑到效率问题,本项目并没有采用当前流行的ORM框架,如Hibernate。
  参考文献
  [1] 李洋.基于Ajax, Struts, Hibernate和Spring的J2EE架构[J].吉林大学学报,2011,29(6).
  [2] 张晓丽. 基于MVC模式的Web OA系统的设计与实现[J]. 计算机技术与发展, 2012,22(8).
  基金项目
  邢台市科技支撑计划项目:邢台联通公司系统集成中心开放实验室出租业务运营系统的设计与实现. 项目编号:2014ZC105
  作者简介
  冷飞(1979—),男,河北邢台市人,硕士,研究方向为计算机软件
其他文献
[摘 要]思想政治工作是经济工作的生命线,强有力的思想政治工作可以为高校发展保驾护航,起到基础性的保障作用。而高校思想政治工作的开展需要一支政治素质和业务素质过硬的政工队伍。本文对企业政工队伍建设进行初步探析,分析企业政工队伍的现状,主要阐述当前政工队伍存在的问题,然后结合企业发展的需要提出企业政工队伍建设的对策。  [关键词]政工队伍;队伍建设;高校政工  中图分类号:G627.2 文献标识码:
期刊
[摘 要]随着近些年来我国公路事业的快速发展,公路运输对我国国民经济的发展越来越重要。公路运输经济作为一种交通经济是我国国民经济的重要组成部分,因而大力发展公路运输经济,不但可以促进我国国民经济的快速发展,同时也对我国社会的和谐与稳定产生积极影响。本文首先分析了公路运输的特点,进而提出促进公路运输经济不断向前发展的措施,最后介绍公路运输经济对我国经济发展的重要影响。  [关键词]公路运输,经济,发
期刊
[摘 要]锅炉的使用就存在于我们身边,现在的管理和使用工作中仍然存在一些安全隐患问题。想要解决这些问题达到高效安全的生产状况,就应该从各个方面看问题、找原因、下对策。排查改善工作需要大家的共同努力,生产和使用部门要提高安全意识和专业管理技术水平,重视锅炉安全检修的工作,做到锅炉安全责任意识就在我们身边不可轻视。监察部门应加大宣传力度,制定责任制落实到个人,定期检查逐一排除使用中存在的安全隐患。人人
期刊
[摘 要]进入二十一世纪以来,我国不断加快现代化建设的脚步。近几年我国城市现代化建设已初具规模,农村现代化建设则成为现代化的重要任务。农村电网规划作为现代化建设和新农村建设中的重要组成部分备受人们的瞩目。农村电网基础设施建设及设备供给机制在取得斐然的成绩的同时也存在着一些问题制约着我国农村电网规划的有效实施。  [关键词]农村电网、基础设施、设备供给制度  中图分类号:F294 文献标识码:A 文
期刊
[摘 要]培养民办应用型本科院校专任教师的“双师素质”,既是应用型本科院校提升教育教学质量的内在要求,也是民办应用型本科院校专任教师自我成长的需要。深化校企合作,推动民办应用型本科院校专任教师深入行业企业一线开展顶岗实践,是培养专任教师“双师素质”的一条有效途径。  [关键词]职业教育;“双师素质”培养;人才;探析  中图分类号:G715.1 文献标识码:A 文章编号:1009-914X(2015
期刊
[摘 要]国土资源管理是我国公共管理工作体系中的一项重要内容,在我国社会经济的发展过程中有着重要的作用。我国作为一个人口众多的农业大国,土地资源十分有限,在满足人们生活及居住需求的同时,还必须保障人们的口粮问题,土地资源的有效利用是保障我国的粮食生产,维护社会发展稳定性的关键所在,国土管理工作的任务就是通过对有限土地资源的合理规划与管理,保障土地资源的合理利用,进而促进我国经济的发展。  [关键词
期刊
[摘 要]随着我国经济的飞速发展,民航事业迎来了前所未有的大发展。正是因为这样的发展给我们空管人既带来机遇,更带来了很大的挑战。民航飞行流量的不断增大,空军训练活动的日益频繁,对于空中交通管制员来说,工作的难度、强度都随之增加。一旦有飞行事故发生,不仅会造成人民生命和财产的损失,更会造成很坏的社会影响。本文作者结合当前空管安全管理的模式,进一步提出了新的安全管理机制,强调塔台管理安全管理的重要性。
期刊
[摘 要]分析了2006年以来中央和地方针对农村消防安全凸现的问题制定的一系列消防法律法规在实施与农村的过程中体现的成效和不足,同时提出了在未来消防法制建设及推进过程中,如何在农村消防工作中进一步体现法律法规的价值。  [关键词]消防法律法规;农村;实效;价值  中图分类号:D911.09 文献标识码:A 文章编号:1009-914X(2015)42-0267-02  改革开放以来,我国消防法制建
期刊
[摘 要]在法医日常工作中,颈椎颈髓损伤较少见,寰椎位置较高,损伤尤其少见,解剖中如果不仔细发现,很难找到死亡原因,这对法医工作解剖方面提出了更高的要求。  [关键词]寰枢椎脱位;高位颈髓损伤;呼吸机瘫痪  中图分类号:R651.2 文献标识码:A 文章编号:1009-914X(2015)42-0277-01  1、案例资料  1.1 简要案情  夏某,女,42岁。某年11月22日22时许,夏某因
期刊
[摘 要]中学计算机教育是一项基础文化教育和人才素质教育,是一项知识性和技能性相结合的基础学科教育。随着教育改革的不断深入,我国在计算机教育方面制订了一系列方针政策,为中学计算机教育发展提供了保障。改革开放以来国家经济实力的增强,政府加大对学校教育的重视和投入,学校办学条件有了明显改善,加之社会的关心和支持,都对计算机教育的发展奠定了物质基础。  [关键词]中学生;计算机;技术应用?  中图分类号
期刊