公务员期刊网 精选范文 spring框架范文

spring框架精选(九篇)

spring框架

第1篇:spring框架范文

关键词 Spring 技术 应用

1 Spring框架技术介绍

Spring是一个多层的J2EE系统的框架。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能。传统的J2EE开发的程序,应用实现难度大,代码比较多,编译的难度普遍受时间、编译代码的量决定,往往由于部分代码而导致从新编译,编译的质量也不高。程序开发者兴趣也不浓,J2EE的发展受到了极大的制约。而基于J2EE系统的Spring框架的推出,提供了更加简单、快速的实现方案,大大减少了代码的编辑量和编译时间,完善了继承性,把大量应用到的方便代码进行封装,与其它代码分离,建立被调用的实例不再由调用者建立,而是由建立,使系统运行占用少量的系统资源,提高效率[1]。

Spring 框架是一个分层架构[2],也称容器,基本由七个模块组成。Spring容器用以构造所需要的Model。在此基础之上,提供了AOP(Aspect-Oriented Programming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;采用DAO(Data Access Object)的方法方便我们进行数据库的开发;利用Web MVC(Model-View-Control)和Spring Web方便了Java Web应用的各种框架或与其他Web框架进行集成,统一协调工作,七个模块都可以单独存在也可联合使用,可使用到任何J2EE的服务中。如图 1 所示。

2 在短信群发平台中发送数据入库的应用

3 在短信群发平台中号码簿批量导入的应用

(1)准备号码簿:号码簿采用Excel2003文件格式,文件中每一个工作表(Sheet)代表一个组织机构,工作表名称即是组织机构名称。每一个工作表的第一列填写短信接收者的手机号码,其他各列可以填写接收者的任何信息。如图2所示。

(2)上传号码簿:系统管理—〉号码簿管理;点击“选择号码簿”选择准备好的号码簿文件,点击按钮上传号码簿文件。文件上传进度条指示当前文件上传进度。号码簿上传后,到“短信群发”中可以看到“发送范围”中的选项发生了变化。图3所示号码簿管理。

4 结束语

使用Spring框架可以大大简化J2EE应用的开发和测试,加强了开发Web应用程序的能力,提高了系统运行效率,实际上无论是J2EE技术标准还是Spring等框架,其目的都是如何简化企业应用的开发,Spring等框架独特技术管理已被广泛的应用。

参 考 文 献

[1] 伽玛,李英军等.模式设计-可复用面向对象软件基础[M].北京:机械工业出版社,2005.06.

第2篇:spring框架范文

关键词:持久化,对象/关系映射,J2EE

 

随着计算机网络的普及以及计算机技术的普遍应用,近年来出现了越来越多的Web 应用,应用范围包括信息管理、在线交易、工作流及协作环境、网络社区等。这些应用系统的共同特点是Web 页面多、导航困难、业务逻辑复杂。而在现在B/S 结构的大型Web 开发中, 可重用的、易维护和扩展的, 并且性能良好的组件, 是至关重要的。Hibernate+Struts+Spring (HSS) 框架。这种框架使用Struts 实现表示层,Spring实现业务层,Hibernate 实现持久层,然后把三者无缝地整合起来,应用到项目开发中。劳资管理是一项政策性很强,工作量很繁复的工作,其主要包括2 年1 次的正常晋级、职务变动等劳动工资的调整及各类人员绩效工资情况的统计。由于它牵扯到每一个员工的切身利益,所以其准确性要求极高, 特别是要查找某人历年的工资变动情况时,非常繁琐,费时费力。本文将Web 环境下的Hibernate+Struts+Spring 框架应用于劳资管理工作中。

1 MVC 模式

MVC(Model- View-Control, 模型- 视图- 控制器)模式是XeroxPARC 在20 世纪80 年代为编程语言Smalltalk―80 设计的一种软件设计模式, 至今已被广泛使用, 并被推荐为Sun 公司J2EE 平台的设计模式, 其为开发交互式应用系统提供了一个优秀的设计模式, 受到越来越多开发者的欢迎。MVC 要由3 部分组成:模型、视图和控制器,

模型(Model)包括业务逻辑和业务规则等, 在MVC 的三个部件中拥有最多的处理任务。它可以用JavaBean 和EJB 等组件技术来处理数据库的访问。模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用, 所以减少了代码的重复性。

视图(View)是屏幕上的显示。模型进行操作之后, 其结果就是通过视图来显示的。在视图中其实没有真正的处理发生, 只是作为一种输出数据并允许用户操作的方式。控制器用于管理用户与视图发生的交互。一旦用户想对模型进行处理时, 它不能直接去执行模型, 而是通过控制器来间接地实现。

控制器(Control)能从视图中取值, 然后将相应的值传给模型进行处理。控制器接受用户的输入并调用模型和视图去完成用户的需求。论文大全。

MVC 模式的处理过程是:首先由控制器接收用户的请求, 并决定应该调用哪个模型来进行处理, 然后模型用业务逻辑来处理用户的请求并返回数据, 最后控制器用相应的视图返回数据, 并通过表达层呈现给用户。MVC 本身就是一个非常复杂的系统, 所以采用MVC 实现Web 应用时,最好选一个现成的MVC 框架, 在此之下进行开发, 从而取得事半功倍的效果。现在有很多可供使用的MVC 框架, 由Struts有完整的文档并且相对来讲比较简单, 所以用它开发MVC 系统还是比较方便地。

2 Struts+ Hibernate+ Spring

Struts 提供了Controller组件并且整合了其它技术来实现Model 和View。对于Model,Struts 可以使用标准数据访问技术,如JDBC 和EJB,也可以使用第三方工具,如Hibernate。至于View,Struts 支持JSP 技术、JSTL 和JSF,也可以使用Velocity模板,XSLT 及其它表示系统。此外Struts 提供了自定义的标记库,可以辅助JSP 进行表示层的设计,通过这些自定义标记可以和系统的Model 部分进行交互。Struts 的核心组件有:

ActionServlet、Action、ActionForm、ActionMapping、ActionForword、TagLib 以及配置文件等。我们用JSP 技术结合Struts 强大的TagLib 来实现我们的表示层[3]。

在企业级的应用中,由于需要频繁的与数据库交互,开发者往往在应用和数据库之间建立一个“持久层”,它负责应用到数据库的数据存储,也负责数据的检索和更新。在J2EE 的应用中,这个持久层通常使用DBC,实体Beans,JDO 等等技术来建立。但由于JDBC 中数据访问对象(DAO) 和SQL 语句直接绑定在一起,且不支持继承和多态,而且还需要额外的EJB 容器,这就降低了系统的可维护性。Hibernate 是一个实现对象和关系之间映射(objectrelation mapping,ORM)的开源框架。它对JDBC 进行了轻量级的对象封装,使得JAVA程序员可以使用面向对象的编程思维来操作关系数据库。如果在软件开发中采用面向对象的方式进行设计,而使用的是关系数据库,就可以选用Hibernate 这种框架来实现对象和关系之间的映射和数据的持久化。Hibernate拥有一种功能非常强大的查询语言HQL,这种语言与SQL 相似,而且完全是面向对象的。它查询的是持久化对象,而不是数据库的记录,而且它可以支持多态、继承、关联等关系[3]。

Spring 是一个以依赖注入(inversionof control,IoC)原则和面向方面编程思想(aspect-oriented programming,AOP)为基础的轻量级框架。Spring 既是一个AOP 框架,也是一个IoC 容器。运用AOP 可以创建“横切关注点”(CrosscuttingConcerns),在应用时将它们插入代码中,使得代码有良好的可重用性。IoC 容器允许在需要生成对象的地方创建一个应用上下文,然后将这些对象传递给它们的合作对象。它可以很容易地替换业务对象,只要用Java Bean 属性和配置文件加入依赖性,然后就可以很容易地在需要时替换具有类似接口的协作对象[3]。

Spring 还提供了可以和总体的IoC 容器集成的强大而灵活的MVCWeb 框。Spring 是一个轻型容器,其核心是Bean 工厂,用以构造我们所需要的Model。在此基础之上,Spring 提供了AOP的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean 工厂的扩展ApplicationContext 更加方便我们实现J2EE的应用;DAO/ORM 的实现也更方便我们进行数据库的开发;Web MVC 和Spring Web 提供了JavJava Web 应用的框架或能够与其它流行的Web 框架进行集成[5]。

Spring 使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring 的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从Spring 中受益。

3 系统设计

经过对劳资管理系统进行详细的系统分析,系统需要实现全动态、分布式的信息传输与处理机制,实现系统出勤信息按部门和权限进行动态和更新。Web 浏览器是集成所有信息服务的最终平台,因此该系统是基于三层的浏览器/服务器(B/S) 体系结构。

其中表现层用JSP 技术结合Struts 强大的TagLib 来实现,业务层由Spring 实现业务组件的组装关联,通过依赖注入、A O P应用、面向接口编程,来降低业务系统开发环境:Netbeans;后台数据库:SQL Server2000;Web服务器:Tomcat5.0。系统总体设计如下:

图1 系统总体设计图

考勤模块:此模块可以由各部门通过网络访问,将本部门的各员工的本月出勤情况,加班情况上报人事部门。经人事审核后存入系统数据库。

工资计算:此模块由人事部门使用,包括岗位工资,技能工资,月奖,年终奖的计算方法设置,系统根据人事部门设定的计算日期自动计算当月各员工工资。

政策管理:此模块负责有关各项人事法规、工资法规的设置,根据这些法规设置工资调整,工资的计算法则。

工资查询:由各员工通过网络访问进行月度工资的计算;财务部门也可以通过此模块进行工资核实。此系统在当月工资计算完毕惊人是审核后会自动传递到财务部门的财务系统,接受财务审核。

用户管理:此模块负责该系统用户的使用权限的分配和管理。

4 结束语

本文针对劳资管理的特点,利用企业流行的Struts+Hibernate+Spring 应用技术,设计出基于J2EE 平台的电子政务系统。论文大全。论文大全。在系统建模中,通过采用Struts 的设计充分地体现了MVC 的架构,其维护起来会非常方便。Hibernate的引入避免了手工编写访问数据持久层的方法,Spring利用延时注入思想组装代码,大大增强了项目的可扩展性,降低了维护成本,提高了软件开发效率。实际的应用表明:该系统具有良好的交互性、可扩展性和可维护性,表现出良好的性能。

参考文献

[1]  李 健. 劳动工资与社会保障MIS 系统的设计与实现[J ] . 计算机系统应用,2000 (1) :26~29.

[2] 吴翔胜.人事劳资管理软件的开发和应用[J ] . 郑州纺织工学院学报,1999 (2) .

[3] 孙卫琴.精通Struts:基于MVC 的Java Web开发[M].北京:电子工业出版社,2004:95-127.

[4].The apache softwarefoundation[EB/OL].http://struts.apache.org/.

[5] Hibernate .Relational ersistence for Javaand .NET[EB/OL].http://www.hibernate.org.

第3篇:spring框架范文

关键词: 科研管理;三层架构;Struts;Spring;Hibernate

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2009)27-7684-02

Scientific Management System Based on Struts+Spring+Hibernate Frameworks

NI Jian-xin

(Journal of Wuxi Teachers' College, Wuxi 214001, China)

Abstract: In this paper, discusses the Scientific Management System's architecture, function modules, key technologies, this system uses the three-tier architecture, the realization of Web performance using Struts, Hibernate for data access and persistence layer, Spring for business layer, practice shows that this system greatly improved the efficiency of Scientific Management in our college.

Key words: scientific management; three-tier architecture; struts; spring; hibernate

随着校园网应用以及教师专业化进程的不断深入,各高校和科研单位都对科研工作的数量和水平提出了新的要求,科研管理部门的工作量日趋加重,原先利用档案或简单的统计软件对科研项目,科研成果进行管理,统计,分析已经变得越来越困难,而且其信息的滞后性也不能反映出学校目前的科研现状,为了提高我校科研管理工作的效率,减少科研管理的工作量,使科研管理更加规范化,现代化,设计一个符合我校科研管理模式的科研管理系统就显得十分重要,本文从系统结构,相关模块及主要实现技术三个方面详细描述了其实现过程。

1 系统结构

本系统采用三层架构的模式分为表现层、业务层和持久化层,利用Struts实现Web表现层,Hibernate实现数据访问和持久化层,Spring实现业务层和整合工作,用MYSQL作为数据库服务器,JSP服务器采用Tomcat, 在设计模式中,分层是一个非常重要的设计模式,可以剪断层与层之间的耦合关系,在每层中只解决相关问题,利于发挥不同框架的功能,其总体结构图如图1所示。

2 相关模块及用例图

本系统主要包括登录模块和科研信息的管理两个功能模块,其中科研信息的管理又可以细分为新增,修改,查询,删除,分页,统计等,其实现的用例图如图2所示。

3 系统主要实现技术及相关代码

3.1 Web表现层的实现

本系统利用Struts强大的标签库和自动校验功能,来实现数据的前端显示,并把Action类的实例化交给Spring的IoC容器来完成,并采用一个模块一个配置文件的手段,由login.xml、manage.xml和struts.xml负责登录模块、科研管理模块以及全局配置。在登录模块中自定义了一个Action类LoginAction.java进行登录校验,以Model-Driven方式来实现,使用一个User值来传递数据,登录成功进入系统,失败则显示错误信息,其配置文件代码如下:

/index.jsp

error.jsp

在科研管理模块中,为了代码简单清晰,仅仅使用一个Action类ManageAction来实现新增,修改,查询,删除,分页,以Property-Driven属性驱动模式来实现,所有表单域都作为ManageAction的属性,没有值对象参与,通过Spring的Ioc容器将相关属性注入,在一个类中实现了query(),save(),delete()等相关方法,为了让用户在使用时感觉更加人性化,在save()方法的配置文件中还定义了两个过滤器来实现输入数据的自动校验功能,对于前端JSP页面的显示,主要通过使用Struts中的表单标签来实现。

在struts.xml中通过来包含导入的manage.xml和login.xml,从而实现全局配置。

3.2 数据层的实现

本系统后台数据库采用Mysql来实现,在Mysql中创建科研管理系统相关的数据表management,其表结构主要字段如表1。

表创建完毕后,需要通过配置数据源将Hibernate和Spring整合在一起,这里直接使用MyEclipse中的DatasourceSessionFactory向导来完成这个工作,并生成Mapping文件和持久化类。

整个系统数据库连接部分,也就是DAO类的实现非常简单,都是借助于父类HibernateDaoSupport来实现,对于登录模块直接通过用户名和密码来查找验证,对于科研管理模块中的新增,修改,查询,删除直接使用getHibenateTemplate()方法来实现,对于数据分页则使用Query类的setFirstResult()和setMaxResults()方法来实现。

其主要代码如下:

Public List doInHibernate(Session session) throws HibernateException, SQLException{Query query=session.createQuery(sql1);

query.setFirstResult(startRow1);

query.setMaxResults(pageSize1);

return query.list();}

3.3 业务层的实现

本系统利用Spring的IoC容器整合了Web表现层,业务层和数据层,主要通过如下方法来实现,将Struts中的Action类实例化,将DAO组件实例化,并将DAO组件实例注入业务逻辑组件,从而实现了业务逻辑组件和DAO组件的高度解耦,加载Hibernate模块,提供数据源,为业务逻辑方法增加事务控制,借助于Spring的声明式事务管理,并不需要添加任何代码,所有的事务管理都放在Spring的application―Context.xml配置文件中,其中科研管理模块Bean配置如图3所示。

其相应的Bean配置文件代码如下:

从这里我们可以看出三层结构的分布情况,层与层之间都是面向接口方式实现,以此实现高度解藕。

4 结束语

本文讨论了使用轻量级J2EE框架Struts+Spring+Hibernate的整合来开发J2EE应用项目科研管理系统,该架构开发简洁、结构清晰,并使系统具有良好的复用性、扩展性和可维护性,通过添加更复杂的业务逻辑,可以满足更多的实际需求,经实践表明,极大的提高了我校科研管理的效率。

参考文献:

[1] 刘聪.零基础学Java Web开发[M].北京:机械工业出版社,2007.

第4篇:spring框架范文

关键词:Struts;Spring;Hibernate;框架;SSH

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0103-04

随着信息技术和Internet的发展,基于JAVA的Web技术在各行各业得到广泛应用。在进行软件开发时,为了降低开发成本和开发周期,也为了使软件开发人员能够将更多的精力集中于业务需求的研发减少底层代码的开发工作,选用良好的开发框架显得尤为重要。基于Java的开源架构有很多,通常情况下,选用何种架构跟项目规模有直接关系。对于大型或者超大型的企业级项目,建议采用Java EE的EJB技术。对于需要快速开发的中小型项目,采用轻量级的框架技术更符合实际需要。现在有许多优秀的开源的Web开发框架,例如,用于进行数据持久化的Hibernate和JFinal、用于进行权限设计的Shiro以及具有丰富标签库的Struts2等,在进行Web应用程序开发时,我们可以选用其中某一个架构,也可以将这些架构整合起来使用。目前比较流行的是采用SSH2(Struts2+Spring+Hibernate)组合框架构建JAVA Web应用程序,表示层使用具有丰富taglib标签库的Struts2技术,持久层采用Hibernate框架对数据进行持久化操作,业务层采用Spring框架在层与层之间解耦。

1 关键技术介绍

1.1 Struts2

Struts最早于2000年5月作为Jakarta项目的组成部分,Struts1框架是在 JSP Model2基础上实现的MVC(Model-View-Controller)框架,它是世界上第一个的MVC框架。由于Struts1与JSP和Servlet的紧耦合性导致它存在很多缺陷,也制约了其发展,从而呼唤Struts2的出现。

Struts2与Struts1在本质上有很大的区别,它没有使用Struts1的设计核心,而是基于WebWork进行架构设计,它是第二代基于MVC模型的Web应用框架。Struts2不仅拥有功能强大的表达式语言和丰富的标签库,还可以通过拦截器对用户请求进行处理,从而对业务逻辑控制器和Servlet进行分离,降低程序的耦合性。

1.2 Spring

Spring是为了解决Web应用程序开发复杂性而创建的,极大地简化了企业级系统的开发过程。它的核心技术包括两个方面,一是反转控制(Inverser of Control,IoC),另一个是面向切面编程(Aspect-Oriented Programming,AOP)。Spring是一个轻量级分层架构框架,由7个模块组成,分别是:Spring Core(核心容器)、Spring Context(应用上下文模块)、Spring AOP模块、Spring DAO(JDBC抽象和DAO支持模块)、Spring ORM(对象/关系映射集成模块)、Spring Web模块、Spring Web MVC模块,这些模块可以单独使用,也可以与其他一个或多个模块组合使用。

Spring中包含了非常丰富的内容,包括表示层和数据层,它提供了许多原来只有EJB才能提供的功能(如声明式的事务管理等),但Spring又无需运行在EJB容器中。Spring本身就是一个容器,它可以对系统对象的生命周期进行配置和管理。在SSH2组合框架中主要将Spring应用于中间的业务层,使用接口松散耦合的JavaBeans实现的对象模型可以通过XML配置文件进行组合。

1.3 Hibernate

Hibernate是一个开源的对象关系映射(Object-Relation Mapping,ORM)框架,是JAVA类与数据库表进行映射的工具,映射后持久化类的每个实例对应数据库表中的一行数据。Hibernate对JDBC进行了轻量级封装,以前使用JDBC将数据持久化到数据库的过程是:先得到Connection,再得到Statement,然后调用Statement的execute方法执行sql语句。这样写出的程序类似面向过程,而非面向对象,并且程序中嵌套了很多sql脚本,使得程序员将大量精力放在如何编写SQL语句上。现在使用Hibernate框架通过面向对象的方式对数据进行持久化,可以让Hibernate帮我们生成相应的SQL语句,程序员只需要操作对象就可以对数据库表进行增删改查操作。

2 SSH2组合框架

在进行软件开发时使用成熟的框架就相当于让别人帮你完成了一些基础的工作,使用Struts2、Spring和Hibernate这3种优秀的轻量级框架组成的SSH2组合框架可以充分发挥各个框架在Web应用不同层面的作用。

2.1 SSH2组合框架详细架构

SSH2组合框架分为三层:分别是持久层、业务层和表现层。每层具有明确的责任,数据层使用Hibernate对数据库进行增删改查操作,业务层使用Spring框架实现松耦合,表现层使用Struts2负责页面的请求和转发等。SSH2组合框架示意图如图1所示。

持久层:通过Hibernate的ORM将关系型数据库的数据映射成对象,从而实现以面向对象方式操作数据库。具体过程是,首先分析模块所要涉及的表,确定表之间的关系后进行数据库设计,然后用Hibernate提供的工具将数据表转化为POJO对象,再用面向对象的方式进一步操作这些对象以达到对数据的持久化控制。

业务层:位于三层架构的中间层,主要由Spring负责业务层处理。利用Spring的IOC容器实现功能模块的松耦合相连,利用Spring的AOP将业务逻辑从系统服务(如监控和事务处理)中分离出来,从而实现内聚开发。

表现层:表现层采用Struts2框架对用户请求进行响应。Struts2提供了丰富的Taglib标记库,极大地提高了开发效率,并且具有页面导航优势,通过一个配置文件struts.xml就可以把握整个系统各部分之间的关系,便于后期的维护和管理。

2.2 SSH2框架的优点

基于SSH2的Web应用架构整合了Struts2、Spring和Hibernate这3个轻量级的开源框架,具有如下优点:

1)属于开源架构,开发者可以更深入了解其内部实现机制和原理。

2)符合典型的三层架构模式,表现层、业务层和数据层架构层次分明,降低了层与层之间的耦合性。

3)采用MVC模式对业务逻辑层、数据层和表现层进行分离,所有业务逻辑都在Service中处理,有利于系统的开发和维护。

4)SSH已经把底层实现封装好了,软件开发者不仅可以在此基础上实现快速,而且可以更专注于业务逻辑的实现。

5)配置灵活,支持国际化,并且具有很高的重用性。

6)扩展性强,通过配置文件的形式实现扩展。

3 采用SSH2组合框架构建Web应用程序

使用SSH2组合框架进行程序开发,需要开发人员在IDE(例如MyEclipse)环境中正确导入并配置好Struts、Spring和Hibernate。搭建SSH2架构的Web应用环境,通常有两种方式,一种方式是采用自底向上的方式搭建,即先导入Hibernate、再添加Spring支持,然后集成Struts2。另一种方式是采用自上而下的方式搭建,即先加载Struts2,然后添加Spring支持,再集成Hibernate。下面我们着重介绍采用自上而下的方式搭建SSH2开发架构的过程。

3.1 新建工程,并创建数据库连接

开始一个新的项目, 通常需要先新建工程,另外大多数Web项目都需要用到数据库,故而新建工程后要创建数据库连接。首先在MyEclipse开发环境中新建Web Project工程,然后添加数据连接。以创建oracle数据连接为例,过程如下:

1)点击图标,选择“MyEclipse Database Explorer”视图,MyEclipse开发环境左侧窗口变为DB Browser;

2)在左侧的DB Browser中,点击鼠标右键,选择“New”,弹出如图2所示菜单;

3)在图2中,填写数据库相关信息并添加驱动类库ojdbc14.jar;

4)点击图2中的“Test Driver”,提示数据库连接成功即可。

3.2 添加Struts2支持

1)添加Struts2的jar包

首先在新建的工程中添加Struts2的jar包struts2-core-2.1.6.jar

2)创建struts.xml文件

在工程的src目录下创建struts.xml文件,该文件是Struts2的核心配置文件,用于管理和配置Action拦截器和逻辑视图映射等,在程序运行时该文件会被Struts2框架自动加载。

3)添加核心过滤器

在工程的web.xml文件,添加Struts2的核心过滤器FilterDispatcher,代码如下:

3.3 添加Spring支持

1)通过IDE环境添加Spring的jar包

在MyEclipse视图下,点击IDE环境左侧的工程名,然后选择”MyEclipse””Add Spring Capabilities…”,为新建的工程添加Spring支持,如图3所示,主要添加Spring 2.5 AOP Librabries、Spring 2.5 Core Librabries、Spring 2.5 Persistence Core Librabries、Spring 2.5 Persistence JDBC Librabries、Spring 2.5 web Librabries这5个包。

点击图3中的“Next”按钮,打开图4所示窗口添加Spring bean的配置文件applicationContext.xml,该文件必须放置到WebRoot/WEB-INF目录下,以便于通过web.xml进行加载。

2)配置web.xml文件,添加Spring监听器

在web.xml文件,添加Spring监听器的代码如下:

3.4 添加Hibernate支持

1)通过IDE环境添加Hibernate的jar包

在MyEclipse视图下,点击IDE环境左侧的工程名,然后选择 “MyEclipse””Add Hibernate Capabilities…”,为新建的工程添加Hibernate支持,如图5所示。

2)配置Hibernate

点击图5中“Next”按钮,进入图6所示的“Hibernate Configuration”页面,对Hibernate进行初步配置。选中“Spring configuration file(applicationContext.xml)”单选框,意味着我们将会使用Spring中的applicationContext.xml文件对Hibernate Bean进行管理。

点击图6中的“Next”按钮,对Hibernate进行进一步配置,如图7所示,选中“Exiting Spring Contfiguration file”单选框,文本框中输入“SessionFactory”。

1)添加数据源

点击图7中的“Next”按钮,弹出图8所示的添加数据源窗口,指定一个新的Spring数据连接。具体配置如图8所示,DB Driver处选择我们前面配置好的数据源oracledriver即可。

点击图8中的“Next”按钮,在弹出的图9窗口中取消勾选”Create SessionFactory class”选项 ,点击”Finish”按钮即完成Hibernate添加。

这时,我们的工程完整的添加了Struts、Spring和Hibernate支持,开发环境搭建完毕,就可以进一步编写业务需求的实现代码了。

4 结束语

在进行JAVA Web工程开发时,Web应用框架的选择非常重要。本文在深入研究和细致分析开源框架Struts2、Spring和Hibernate的基础上,根据Web应用的分层原则,提出采用SSH2组合框架自上而下构建Web应用程序的方式。使用这种优秀的解耦架构不仅可以提高开发效率,缩短开发周期,节约开发成本,而且对后期不断的需求变更能够更好地适应,在多个项目实施过程中,该组合框架也表现出了良好的性能。

参考文献:

[1] Oh snap! [EB/OL].http:///hibesdocs/reference/zh-cnlhtml.

[2] 孙鑫. Struts2深入详解[M]. 北京: 电子工业出版社, 2009.

[3] 王福强. Spring揭秘[M]. 北京: 人民邮电出版社, 2009.

第5篇:spring框架范文

关键词:开源框架;客户关系;整合;SSH

中图分类号:TP315文献标识码:A文章编号:1009-3044(2012)03-0617-03

CRM Design and Implementation Based on Open Source Frameworks

ZHAO Yong-hui, DENG Wen-xin

(Zhejiang Guangsha College of Applied Construction Technology, Dongyang 22100, China)

Abstract: In this paper, three main open-source frameworks Struts, Spring and Hibernate based, integrated design of a common SSH open source framework and its application to customer relationship management system. Practical results show that the framework of the integrat? ed framework of their three full advantage of reducing the coupling between the layers, increase the system flexibility and scalability, with a high reference and promotion of practical value.

Key words: open-source framework; customer relationship; integration; SSH

随着全球一体化经济的到来和市场竞争越来越激烈,客户对企业要求越来越高,需求呈现多样化、个性化、差异化。在当前激烈的市场竞争环境下,市场的竞争已经从产品的竞争转向了客户资源的竞争[1]。因此,企业为了争取最多的客户,获得最大利润,就必须实施针对性的策略,进行“一对一营销”,CRM正是达到这一目的的一个好的工具[2]。

通过实施CRM,一方面有助于规范企业管理,实现企业管理与业务运作的信息化和自动化。另一方面有助于整合企业的客户资源,掌握客户资源,制定合理的发展战略和市场策略,提高企业竞争力。由此可见,通过实施CRM,既可以提高企业的工作效率和收益,同时能保持老客户和发展新客户,从而把握未来竞争的主动权[3]。

1系统框架设计

1.1 SSH的集成框架

SSH的集成框架通过整合Struts、Spring和Hiber? nate这三种框架,形成一种新的轻量型的J2EE架构,实现了MVC三层架构的软件开发模式,用这架构可以实现高内聚、低耦合、易维护的分布式应用程序。

系统从职责上分为3层:表示层、业务逻辑层和数据持久层[3]。其中表示层主要负责提供界面实现与用户的交互,采用Struts框架,实现了MVC的分离。业务逻辑层它管理着具体的业务对象和业务操作,采用Spring框架,Spring有成熟的事务管理和依赖注入机制,能很好整合Struts和Hibernate。数据持久层利用Hibernate框架完成数据持久化操作。其具体的架构图如图1所示。

图1 SSH架构图

1.2 SSH集成框架工作流程

首先JSP页面提交请求给Struts2的ActionServlet核心控制器,核心控制器根据配置文件Struts-config.xml找到相应的Action,然后调用业务处理需要使用的Spring的bean,Spring的bean中提供相应的Java EE服务,在bean中调用数据持久层的DAO对象进行数据库的操作,接着把操作结果数据返回给Action,最后由Action决定数据发回给相应的JSP页面。

2系统实现

2.1系统功能介绍

根据公司对客户管理的需要,该系统能把客户基本信息、联系人相关信息、交往记录和客户服务记录等信息,实现规范化管理并共享;能通过分析销售机会和客户开发过程的记录,为开发新客户提供帮助;系统能根据客户的信息和交往记录,在客户将要流失前及时告知销售人员,采取措施挽回客户。系统能提供相关报表给公司领导分析了解公司客户情况。

系统功能划分成了营销管理、客户管理、服务管理、统计报表、基础数据和权限管理等六个模块,系统功能设计如图2所示。

图2系统功能设计

2.2系统功能实现

客户关系管理系统以MyEclipse 7.0为开发工具,以Microsoft SQL Server 2005作为数据库,Web服务器服务器为Tomcat6.0,采用SSH集成框架开发。由于系统的模块较多,下面以一个以用户登录功能为例详细说明系统的开发实现过程,并将按照持久层、逻辑层、表示层和框架整合的顺序说明系统构建过程。

2.2.1持久层的实现

1)实现Hibernate建模

在Eclipse中运用HibernateTools从数据库中生成java持久化对象模型和hbm映射文件hibernate.cfg.xml,并且将它的路径添加到应用的类路径中完成Hibernate的配置,该配置文件由Hibernate用来连接到数据库、生成模式和获得其它特定数据库信息的属性组成[4]。

2)生成java持久化对象模型和hbm映射文件

使用Hibernate代码生成工具把数据库中的表映射为java类,列映射为java类的属性。同时,生成hibernate.hbm.xml文件,该文件实现对象和数据库之间的映射。

3)编写数据访问类通用DAO类接口:

public interface CommonDAO {

public List list(String sql);//查询方法

}

通用实现类CommonDAOHibImpl继承了HibernateDaoSupport类,实现了通用DAO类接口CommonDAO中的查询方法,代码如下:

public List list(String hql){ //查询方法

List ret = super.getHibernateTemplate().find(hql);

return ret;

}

2.2.2逻辑层的实现

逻辑层主要负责具体的业务逻辑处理、执行应用逻辑、执行向持久层的调用、获得从用户接口层的请求、处理事务和处理异常 等功能。这些功能由Spring的IOC、AOP应用、面向接口编程来实现,业务的管理采用spring配置的方式。

1)配置Spring上下文applicationContext.xml

该文件是整个框架的核心,Spring通过它实现程序中的依赖的关系并管理各组件,同时业务方法实现事务管理。在该文件中指出UserAction依赖于UserBiz,UserBiz依赖于CommonDAOHibImpl,CommonDAOHibImpl依赖于SessionFactory,SessionFactory依赖于DataSource,如图3所示。

图3各组件的依赖关系

2)业务逻辑代码

编写UserAction类和UserBiz类,2个类的实例都由Spring在运行期间“设值注入”方式动态注入。

2.2.3表现层的实现

利用Struts标签和Html语言建立用户登录的JSP文件,实现与用户的交互。用户通过登录页面输入登录信息,根据Struts的相关配置把登录请求转到Action处理。

2.2.4三个框架的整合实现

1) Spring与Hibernate整合实现

①在web.xml中配置spring监听器来启动Spring,配置contextConfigLocation参数为applicationContext.xml文件的路径和listen? er-class类为ContextLoaderListener。监听器通过初始化参数contextConfigLocation找到配置文件applicationContext.xml并加载Con? textLoaderListener。

②在applicationContext.xml文件中配置数据源和SessionFactory,使用Spring提供的LocalSessionFactoryBean,传入一个Hibernaet配置文件的配置。

2) Spring与Struts的整合实现

利用Struts框架开发的WEB应用程序,由控制器组件Action调用业务逻辑组件,业务逻辑组件由Spring IoC来管理,是通过Spring的DelegatingRequestProcessor截获页面层的请求来完成的[5]。

①在struts-config.xml配置插件

在struts-config.xml中配置Spring中的ContextLoaderPlugin类,把Spring配置文件的位置告知插件。

②修改Action Bean配置,在Struts配置文件中Action类别都配置为“org.springframework.web.struts.DelegatingRequestProcessor”,ActionServlet通过RequestProcessor来完成实际的请求转发。

③配置Struts中的Action,把Struts配置文件中配置Actionr的name改为id属性,name属性的值应与struts-config.xml中配置的Action的path属性的值相同,这样系统即会自动通过Spring来管理Action[5]。

3结束语

本文通过整合Struts、Spring、Hibernate三个开源框架,形成了SSH通用框构。实践证明,该框构充分发挥了Struts、Spring和Hi? bernate框架各自的优势,降低了各层间的耦合度,避免了许多重复性的工作,从而提高了开发的效率和系统的质量。通过应用这个通用框构开发的客户关系管理系统,在公司使用一年后,运行良好,公司比较满意,为该公司的客户管理做出了一定的贡献。

参考文献:

[1]陶红玉.基于WEB的客户关系管理系统的研究与实现[D].北京:华北电力大学,2009.

[2]杨帅.基于SSH的CRM系统的研究和设计[D].重庆:重庆交通大学,2009.

[3]王渊,怀自国,罗怡桂.基于Ext+Spring+Hibernate的Web系统开发架构的研究与应用[J].计算机与现代化,2009(12):78-81.

第6篇:spring框架范文

关键词:轻量级Web应用框架;Spring;控制反转模式

1. 引言

J2EE框架标准将一个系统划分为WEB和EJB两个主要部分,从设计上可以抽象为表现层、业务层和持久层,实现了解耦的目的。因此,在实际编程中,大多数应用从功能上根据这三个层次来划分,但要这样做,没有技术上约束限制是比较困难的,因此一般借助J2EE具体技术来实现,可以使用EJB规范实现服务层和持久层,Web技术来实现表现层。J2EE应用虽然从总体上划分了三个层次,但在针对每一层上的具体应用,要设计出可维护性、高拓展性的软件设计目标还是有一定的难度。因此,类似Spring的轻量级框架应运而生,其目的是许多的应用不需要分布式、不需要J2EE中那些重量级的技术,譬如JNDI,有必要将大多数应用中不必要的技术隔离、改造。轻量级框架的发展已经成为推动J2EE技术发展的重要推动力,已经成为一代J2EE技术构架的基础,为此本文对一种新型轻量级Web应用框架进行相关研究。

2. Web应用框架相关研究

2.1. 基本概念

框架是一种软件重用技术,是一个应用软件系统部分或整体可重用设计,规定了其应用体系结构,阐明了整个设计、协作构件之间依赖关系,责任分配以及控制流程,具体表现为一组抽象类以及与它们的实例之间的协作方法。采用基于框架的开发,开发者只需要做的是向事先架好的骨架中填入特定的代码,可以使整个系统结构的改善和流程的固定化,提高了整个系统的可重用性和易修改性。

J2EE是一种利用Java2平台技术简化企业解决方案的开发、部署以及管理一些复杂问题的结构体系。J2EE定义了丰富的技术标准,符合标准的开发工具和API为开发企业级应用提供重要支持。J2EE与别的多层体系平台比较,其核心技术及优势表现在:组件技术、Servlet和JSP、JDBCAPI、JNDI和EJB等方面。

2.2. 轻量级Web框架

轻量级框架主要是指在Java应用程序开发环境中,简化的编程模型和更具响应能力的容器,旨在消除与传统J2EEAPI有关的不必要的复杂性和限制,缩短应用程序的部署时间,从而提高开发效率。比较流行或即将兴起的轻量级Web框架主要有:Struts框架、Tapestry框架、JATO框架以及Spring框架。本文是基于Spring框架展开的,在此做详细描述:Spring首先是一个开源项目,并且非常活跃;是一个基于反向控制(IoC)和面向方面编程(AOP)的多层J2EE系统框架,但它不强迫开发者必须在每一层中必须使用Spring,因为其模块化做的很好,允许开发者根据自己的需要选择使用它的某一个模块;Spring实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,它采用的IoC可以很容易的实现Bean的装配,它提供了简洁的AOP并据此实现事务管理等特性。

3. 新型轻量级Web应用框架

根据Web应用多层开发原则,把基于Spring框架的新型Web应用分为视图层、控制层、业务逻辑层、数据持久层,本节分别对这四层进行分析研究,并分析了Acegi安全框架的工作原理和实现机制以及设计实现了一种可重用动态数据管理构件,最后给出了以Spring框架为核心,整合可重用动态数据管理构件和Acegi安全框架的轻量级Web应用框架的总体结构设计。

3.1. 层次分析

3.1.1. 视图层

视图层位于整个Web应用层次结构的最顶端,负责处理用户交互,并从业务服务层获取相关数据以显示给用户。现在主流的MVC设计模式思想,视图层主要采用JSP实现,进行数据展现和处理,一般存在如下问题:无法像C/S那样使用丰富的效果来展示数据,不具有展观性;Web应用程序的执行效率,产生了不必要的等待;客户端通过提交窗体或者采用地址栏传递参数的形式发送参数时,不管哪种形式,都将导致页面被重新加载。

Ajax技术的出现,很好的解决了上述问题。Ajax是一种位于客户端的技术,能将客户端由原来的“哑”终端加强成智能化的“富客户端”,它采用异步发送请求的方式代替采用窗体提交实现无刷新更新网页,该技术的应用大大降低了客户端延迟,提高Web应用程序执行效率,解决了浏览器等待数据传输问题,改善了用户体验,使用户可以快速得到Web服务器的数据。Ajax实质上也是遵循Request/Server模式,所以这个框架基本的流程也是:对象初始化->发送请求->服务器接收->服务器返回->客户端接收->修改客户端页面内容。只不过这个过程是异步的。利用Ajax实现的MVC模型如图1所示:

3.1.2. 业务逻辑层

业务逻辑层的职责是:处理应用中的业务逻辑和业务有效性验证逻辑;管理事务;管理业务对象之间的依赖关系;在持久层上构造出业务逻辑的上下文,提供业务逻辑服务;管理基于持久层的业务逻辑实现。一般的业务逻辑层设计方案只是为了适应系统的四层架构而建立的平铺式的结构,存在着两个缺点:首先对于同一个主题对象来说,X1和X2对象模型应该有一些共性;七次在理论上,XXService是业务逻辑,对整个系统来说是重要的战略性决定,有着一定的必然性;而DAO是具体层次的实现,带有相当大的偶然性选择。当使用上面的设计方法,直接生成具体对象就使得偶然决定了必然。这种依赖是不可忍受的,业务由具体的实现来决定,这违反了设计模式中的“开一闭”原则(OCP)。所谓的“开一闭”原则,即是指:“一个软件实体应当对扩展开放,对修改关闭,也就是说,我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。”相对于系统来说,业务层XXService的设计应该是可扩展的,即:当添加一个编码表的DAO实体时其代码应该保持不变。为实现XXService层的“开一闭”,必须进行相应的抽象,使得业务逻辑依赖于抽象层,如图2所示。

3.1.3. 数据持久层

在企业级应用开发中,持久层连接着数据资源层和业务逻辑层,起着承上启下的作用。Spring框架本身而言,是一个很有特色的Web应用框架,不仅如此它还提供了对持久层和视图层的实现的封装。对持久层来说,它为业务逻辑层提供数据,所有对数据库的操作都被屏蔽在持久层。Spring在持久层对JDBC进行了良好的封装,通过提供相应 的模板和辅助类,在相当程度上降低了JDBC操作的复杂性。并且得益于Spring良好的隔离设计,JDBC封装类库可以脱离Spring Context独立使用,也就是说,即使系统并没有采用Spring作为结构性框架,开发者也可以单独使用Spring的JDBC部分(spring-dao.jar)来简化访问数据库的工作。

3.2. 动态数据管理构件

本文动态数据管理构件的设计主要包括了两个方面:数据字典和动态数据对象。数据字典实现与数据库中各表名以及对应字段名的映射关系。数据字典记录了数据库中各表的结构信息,它由存放表名的表和存放各表字段信息的表构成。建立好数据字典后,也可以用它来创建一张物理表。本构件采用的这种方式简化了通过页面的参数传递来取值的代码,简化了对数据库的操作代码,避免了大量SQL语句在代码中的重复出现,从而降低了开发人员的负担,减小了出错机会。动态数据对象的应用是建立在数据字典基础之上的。

数据字典是动态数据对象能够使用的必要条件,是可重用动态数据管理构件的基础。一般认为,数据字典是以数据库中数据基本单元为单位,按一定顺序排列,对其内容作详细说明的数据集。本构件的数据字典是对整个系统中所有数据库表信息的集中管理。主要包括以下两个部分:数据字典表管理;数据字典字段索引表管理。

实现了数据字典后,就能根据数据字典所存储的信息封装一个完整的动态数据对象。一般地,动态数据对象通过绑定一张数据库表,实现对数据库的操作。它可以将页面传入的值有规律地存放在动态数据对象中,从而方便将所需要的值一一对应地注入到数据库中。同样地,也可以将数据库中取出的信息有规律地封装成动态数据对象,从而方便将取出的值显示到页面上。数据对象的封装,使得传值的工作大大简化,简化了数据库的操作。

3.3. Acegi安全框架

Spring框架本身没有提供对系统的安全性支持。Acegi是一个能够为基于Spring的应用系统提供描述性安全保护的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring对IOC和AOP的支持。Acegi安全框架主要有4个主要组件来实施安全性。它们分别是:安全拦截器、认证管理器、访问决策管理器、运行身份管理器,它们之间的关系如图3所示。

在Acegi框架中支持多种安全信息的持久化方式,可以在配置文件中配置或存放在关系数据库,由于在实际应用中,需求是经常发生变化的(例如在运行期间用户可能会提出动态改变权限分配的需求)。所以,在配置文件中配置是满足不了实际应用需求的。

3.4. 新型架构设计

本文提出的新型轻量级Web应用框架从上到下依次为视图层、控制器层、业务逻辑层、数据持久层,如图4所示:

图 4新型轻量级Web应用框架

视图层通过JSP结合Ajax技术实现,能将客户端由原来的“哑”终端加强成智能化的“富客户端”,Ajax技术采用异步发送请求的方式实现无刷新更新网页。控制层通过Spring提供的灵活的控制器来完成。业务逻辑层由Java Bean或者EJB组件构成。数据持久层是使用JDBC实现的,JDBC是Java核心类库的一部分,是一个面向对象的应用程序接口,通过它可访问各类关系数据库。

4. 结束语

本文利用Spring框架将可重用动态数据管理构件和Acegi安全框架整合进来,结合Ajax技术构成了一个轻量级Web应用框架。在此轻量级应用框架的基础上,应用系统分为视图层、控制层、业务逻辑层、数据持久层。Spring IoC编程模式降低了多层开发中层次之间的耦合度,Spring AOP编程方式实现了事务处理,Acegi安全框架实现了系统安全控制,可重用动态数据管理构件简化了操作数据库的复杂性,避免了大量SQL语句在代码中的重复出现,这样就使开发人员能够投入更多精力关注具体业,进而提高开发效率。

第7篇:spring框架范文

关键词:MVC;框架;WebWork;Spring;Hibernate;代码复用

中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)14-3704-02

The Research and Application based on J2EE Integrated Open-source Framework

CHEN Cheng

(Xingzhi Academy, NanJing Xiaozhuang College, Nanjing 210012, China)

Abstract: Based on the popular design patterns MVC, it has proposed the lightweight J2EE integrated framework based on WebWork, Spring and Hibernate, firstly has introduced the foundation of the three open-sources software, then has presented the principle of the integrated structure, lastly has analyzed the applications in the Web project based on the integrated framework, as well as has show the advantages of the integrated framework in the code reuse and the development efficiency.

Key words: MVC; framework; WebWork; Spring; Hibernate; the code reuse

1 引言

随着信息技术的发展和B/S应用程序的广泛使用,为能简单高效地开发Web项目,迫切需要一个通用、稳定的集成架构,来提高工作效率、增强程序的可维护性和可扩展性。本文选择开源框架WebWork、Spring和Hibernate相结合的应用,实现了一套方便灵活、低耦合、易维护的开发方式。

2 J2EE开源框架

2.1 MVC模式

传统的Web项目开发,存在诸多不足,MVC模式(Model View Controller, MVC)的出现使其得到了改进和完善。在MVC模式中Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Model的数据或者属性,所有依赖的View都会自动更新。只要Controller改变了View的部分,View会潜在的从Model中获取数据来刷新自己。基于MVC应用程序的开发总是由这三个部分共同协作来完成。MVC组件的关系和功能如图1所示。

MVC设计模式是利用控制器来分离模型和视图,从而达到一种层间松散耦合的效果,减弱业务逻辑接口和数据接口之间的耦合性,提高了系统的灵活性、可复用性和可维护性。现在网络开发框架多数都遵循MVC设计模式,效果较好。

2.2 WebWork框架

WebWork是基于Command设计模式的,致力于组件化和代码重用的强大的开源框架[2]。在利用WebWork框架开发的过程中,根据业务逻辑创建的实现方法xAtion担任控制器的角色,它实现了WebWork类库中XWork中的Action接口。其主要功能是从请求中获取前台页面需要传送的参数值,把这些值传递给执行业务逻辑操作的模型对象,由业务对象执行业务逻辑操作,并返回给转向页面用来显示执行的结果。

MVC中的表现层负责页面的显示和业务逻辑的处理,利用WebWork的标签库与JavaScript脚本语言相结合的方式实现。WebWork框架从Web中脱离出来,与框架Struts相比,在Action类的抽象和Web环境的耦合方面具有优势,在开发过程中更加方便和实用。

2.3 Spring框架

Spring框架是一个分层的J2EE应用程序框架,它是一个从实际项目开发经验中抽取出来的,可高度重用的开发框架[1]。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。Spring通过接口松藕合的JavaBean模型提供了基于IoC 容器的BeanFactory和基于AOP (面向方面编程)框架的JavaBean组件,不需要在程序中维护组件之间的依赖关系,只要在配置文件applicationContext.xml中设置属性,Spring容器将自动依赖注入到相关的组件,完成业务方法层组件的配置与加载。使Web应用开发过程中,能实现逻辑层和数据访问层的完全分离。Spring框架与持久层框架Hibernate集成到一起,从而实现支持DAO以及事务策略,提高代码的可重用性。

2.4 Hibernate框架

Hibernate是一种实现对象和关系映射的框架,它对JDBC进行了轻量级的对象封装,使程序员能使用面向对象的思想来操作关系数据库,Hibernate的目标是减轻开发者与大量普通数据持续性相联系的一些编程任务,在开发进程中,能自动生成SQL,使开发者摆脱了手工处理结果集和进行对象转化的繁琐任务,并能使应用程序移植到所有的SQL数据库,提供透明的持续性。在使用Hibernate框架时,通过编写O/R映射描述文件,完成对象、关系数据库之间的映射,持久对象则根据映射文件生成,最后,编写业务逻辑类[7]。在实际开发中,以上工作不需要程序员编写,利用MyEclipse自带的Hibernate框架,通过配置和数据库之间的连接,即可导出所需要的JavaBean类。JavaBean类实现具体的业务逻辑,也封装了对Hibernate的访问,为应用程序提供数据持久服务。

3 集成框架原理

整个J2EE轻量级Web集成开发架构选用WebWork、Spring和Hibernate 3种框架技术,实现集成架构。客户端层采用JSP表示,用WebWork自带的标签库和JavaScript实现客户端的显示和控制,并做相应的请求和响应;表示层用WebWork统一管理视图和控制器部分,利用WebWork的ServletDispatcher作为控制器,接受客户端的HTTP请求,创建并调用对应的Action实现类,完成与业务逻辑层的交互,并返回执行结果到客户端层;业务逻辑层是利用接口与实现相分离的方式编写对应的Service对象,在Spring的IoC容器中登记为业务模型,由Spring负责管理和配置DAO组件,提供给对应的Action完成业务逻辑,同时提供事务处理、缓冲池等容器组件来提升系统的性能,保证数据完整性;数据持久层采用Hibernate框架,使用导入DAO的方式完成最终的Java类和数据库之间的转换和访问;数据层采用关系数据管理系统,如Oracle,MySQL等。整个集成开发架构如图2所示。

采用上述方式,利用WebWork、Spring和 Hibernate框架各自的优势,能有效实现视图、控制器与模型的分离,将业务逻辑层和数据持久层独立出来。其中,框架WebWork在Web程序开发中起到重要作用。

4 集成框架的应用

开发中,有很多Web项目使用J2EE的开源框架,本文重点介绍一下利用开源框架WebWork、Spring和Hibernate相结合的方式来开发Web项目。 选择MyEclipse作为Java的开发平台,其可以直接加载项目所需要的开源框架WebWork、Spring和Hibernate的相关的类以及配置文件。

4.1 加载开源框架类

在Web项目中,首先导入Spring开源框架,建立SessionFactory对应的类,MyEclipse开发平台将加载Spring运行的相关类和applicationContext.xml配置文件,然后在Spring的基础之上加载Hibernate,根据关系型数据库所建立的表,在MyEclipse中的配置打开数据库连接,导入数据表的对象类和一些基本的数据操作的实现方法。另外还需要把WebWork相关的类复制到项目中,添加XWork.xml文件,并且在web.xml文件中配置我们所用的WebWork框架,使其加载类在项目中能够正常的使用。

4.2 登陆模块的应用

在实际Web项目中,这三种框架相结合使用的事例较多,用法基本相同,只是功能有所差别。以用户登陆模块为例做一介绍,如:前台JSP页面功能,其主要实现代码如下:

用户名:

密码:

4.3 XWork.xml的配置

从JSP页面上将用户输入的用户名和密码提交后,将转入配置文件XWork.xml中,通过这个配置文件寻找Java后台处理登陆过程逻辑的类,同时将提交的内容转移到Java逻辑类中进行判断处理。登陆模块配置的主要代码如下:

index.jsp

error.jsp

4.4 逻辑处理

如上XWrok.xml中的配置相对应,在LoginAction这个类中,使用UserLogin的逻辑处理方法,用于判断用户名和密码是否和数据库中的数据相符,以此做出不同的处理,并返回给页面显。UserLogin方法实现主要代码如下:

public String Userlogin(){

int flag = lb.CheckLogin(username, password); //判断是否合法

……

User user = lb.getLoginUser (username);

session. setAttribute ("user", user);

return Action.SUCCESS;

}

另外,在数据库的导入过程中,根据数据库中表的名称,采用Hibernate框架可以将对象类User.java和操作类UserDAO.java这两个类导入到项目中,在处理逻辑的过程中可以直接调用,方便快捷,加速了项目开发的周期。

4.5 前台页面响应

在后台根据用户名和密码做出判断,在前台显示结果,主要表现为两方面,一个是页面的转向,通过XWork.xml的配置得出要跳转到哪个页面。如上面程序所示,如果返回Action. ERROR,则转向error.jsp;如果返回Action. SUCCESS,则转向index.jsp。另一个是信息的反馈,通过Session或Request将需要传送到前台页面的值放到缓冲区里,然后显示在JSP页面相应的位置。

从上面这个登陆流程的简单的例子可以看出,在整个集成框架中不存在与业务逻辑无关的垃圾代码,也没有SQL查询语句,整个开发过程完全是面向对象的操作方式和可动态配置、可移植的Xml文件,大大提高了开发效率。

5 总结

综上所述,将 WebWork、Spring和Hibernate三种开源框架集成在一起,形成一种轻量级Web开发架构。该架构充分发挥了三者的优点,层次清晰,具有较高的伸缩性、可扩展性和可复用性,开发简洁、维护方便,在Web项目的设计和开发中有一定的优势和广泛的应用前景。

参考文献:

[1] Raible M. Spring Live[M]. 2004,Source Beat Publishing.

[2] LightBody P,WebWork in Action[M]. Manning Publications Co.2005.

[3] 阎宏.Java与模式[M]. 北京:电子工业出版社,2005.

[4] Johnson R. J2EE设计开发编程指南[M]. 北京:电子工业出版社,2003.

[5] 孙卫琴. 精通对象持久化技术详解[M]. 北京:电子工业出版社,2005.

第8篇:spring框架范文

关键词: Struts; 餐费管理; Hibernate; Spring; SSH; MVC

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2015)05-47-03

Abstract: In order to improve the efficiency of the catering management, this paper puts forward a solution for college catering management based on SSH framework. The overall framework of the system, business processes, and the design of the main functional modules are introduced, the key technology of SSH framework in the development of the system is studied. Practice has proved that using the SSH framework design mode, can be a good division of the system, make the hierarchical structure of the system more clear, reduce the coupling between modules, simplify programming, improve the efficiency of software development, improve the performance of the system and maintainability at the same time.

Key words: Struts; catering expense management; Hibernate; Spring; SSH; MVC

0 引言

近年来高校大力扩招,这给高校的管理带来了很大考验,学生的就餐就是一个不小的问题。传统的餐费管理大多采用人工管理,效率低,已经不能满足当前的需求。针对这个问题,本文通过SSH(Struts+Hibernate+Spring)框架技术,开发一个基于MVC的高校餐费管理系统,使餐费管理实现智能化管理。实践证明,该系统的投入使用,大大提高了管理水平和效率。

1 SSH框架介绍

1.1 Struts

Struts是一个基于Java的MVC(Model-View-Controller)框架,主要是采用Servlet和JSP技术来实现[1],该框架主要由三部分组成。

模型(Model):是一个Action类,通过它来实现商业逻辑,用户请求通过struts-config.xml文件描述的配置信息实现控制器(Controller)向Action的转发。

视图(View):View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用它们可以快速建立应用系统的界面。

控制器(Controller):本质是Servlet,主要功能是将客户端请求转发到相应的Action类。

1.2 Spring

Spring是轻量级的Java EE应用程序框架。Spring的核心是实现了IoC(控制反转)模式和AOP(面向切面编程)的容器,Spring的目标是实现一个全方位的整合框架,实现多个子框架的组合,提供一站式的框架整合方案[2]。

1.3 Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使得Java程序员可以使用对象编程思维来操纵数据库,完成数据的持久化[3]。

总的来说,传统的Java EE采用EJB(企业Java Bean)为核心,以应用服务器为运行环境,开发和运行的成本较高。由Struts+Spring+Hibernate构成的SSH框架是Java EE的一个轻量级框架,它具备Java EE规范的种种特征,具有良好的面向对象建模的思维方式、优秀的应用分层及良好的可扩展性和可维护性,目前已经成为Java EE的一种更广泛的开发规范。SSH集成框架与技术结构如图1所示[4]。

2 系统设计与实现

2.1 系统功能

系统主要实现用户信息导入、在线刷卡、账户查询、账户充值和账户管理等相关功能。功能模块构成如图2所示。

⑴ 用户信息导入:通过后台管理批量导入学生基本信息,如学号、姓名、初始密码等信息。

⑵ 在线刷卡:用户在就餐消费时刷卡,系统读出用户的账户余额,如果余额充足,将从账户余额中减去本次就餐的费用,并显示本次就餐发生费用和用户账户余额。

⑶ 账户查询:查询用户就餐费用的历史记录以及余额的情况。

⑷ 账户充值:管理员收到学生的餐费后对用户的账户进行充值,即把收到的餐费与学生账户的余额进行累加。

⑸ 用户账户管理:可以对学生账户进行删除和修改。

2.2 系统架构设计

本系统采用的是四层B/S结构,包括表示层、业务逻辑层、数据访问层和数据层。

表示层主要采用Struts构架,实现MVC模型中的视图和控制部分。

业务逻辑层主要使用Spring框架实现。Spring框架使用依赖注入的方式,使业务逻辑组件在运行期被注入到容器中,利用Spring框架的AOP功能,从面向方面更好地降低系统中各个组件之间的耦合性[5]。另外,Spring的事务管理功能在在线刷卡模块也得到很好的应用。

数据访问层使用Hibernate框架实现。在该层主要完成实体“对象-关系”映射的建立,通过这个映射访问业务对象,即可实现对数据库的访问,使得开发中不必再用SQL语句编写复杂的数据库访问程序,简化了对数据库的访问,提高了开发效率[6]。

数据层主要是数据库,本系统中使用MySql数据库。

2.3 具体实现分析

因篇幅限制,以下仅从众多模块中选择账户充值模块来说明SSH架构开发的具体流程。

2.3.1 利用Struts框架建立视图和控制器

⑴ 建立视图

在MVC模式中,视图负责显示从模型中采集的数据,也负责用户输入的数据和请求的传递,并将这些数据和请求传递给控制器和模型,在Struts框架中,视图部分主要包括JSP页面和ActionForm[7]。JSP页面用来显示模型中的数据,收集用户输入的数据以及提交用户的请求。ActionForm的实质是实体JavaBean,在Struts中专门用来传递表单数据。

下面是账户充值JSP页面、ActionForm和控制器的部分关键代码:

AccountFunding” method=”post”>

⑵ 建立控制器

控制器的功能是将客户端请求转发到相应的Action类[8],控制部分包括配置文件web.xml、struts-config.xml和相应的Action类。下面是控制器的部分关键代码:

action

org.apache.struts.action.ActionServlet

action

*.do

name=”accountFundingForm”

type =”com.szjm.action.accountFundingAction”

parameter=”method”>

上述代码显示,在struts-config.xml文件中定义了一个元素,用来处理账户充值的请求,通过账户充值的JSP页面的“accountFunding.do?method=AccountFunding”这样的请求,就可以由AccountFundingAction来处理该请求,并将处理结果返回。

2.3.2 建立模型

SSH中的模型包括可重复利用的实体JavaBean、系统的业务逻辑以及对数据库的访问方法。建立的模型最终通过Spring依赖注入的方式,在运行期被注入到容器中等待调用。

⑴ 实体JavaBean类

本系统实体主要由学生账户类(Account.java)、学生类(Student.java)和管理员类(Manager.java)构成。

Account类:表示业务中的学生账户。

Student类:表示业务中的学生。

Manager类:表示业务中的管理员。

以上实体类均可以通过Hibernate DAO(数据访问对象)对它们的操作来实现对数据库中相应表的操作。

⑵ 建立业务逻辑类

业务逻辑类主要完成应用中所需要的一些业务方法,有业务逻辑接口和相应的实现类构成。本系统的业务逻辑接口有两个,即IStudentService和IManagerService,分别对应了与学生相关的业务逻辑以及餐费管理员相关的业务逻辑。与业务逻辑接口对应,系统中定义了实现这两个业务逻辑接口的实现类,即StudentServiceImpl和ManagerServiceImpl类。

⑶ 建立DAO类

DAO类主要完成对数据库的访问,可以借助Hibernate来实现。传统对数据库的访问是通过JDBC来完成,但是,使用JDBC访问数据,SQL语句比较复杂且难以理解,重复代码较多,而使用Hibernate可以解决这些问题。Hibernate通过访问对象的方法来实现对数据库的访问,在访问中使用HQL语句来访问对象,使程序和开发变得简单。下面简单介绍建立DAO类的步骤。

① 建立“对象-关系”映射文件

在餐费管理系统中,根据业务实体和数据库中的表,需要建立如下三个“对象-关系”映射文件。

Account.hbm.xml:表示Account对象和account表之间的对象-关系映射文件。

Student.hbm.xml:表示Student对象和student表之间的对象-关系映射文件。

Manager.hbm.xml:表示Manager对象和manager表之间的对象-关系映射文件。

对象-关系映射文件建立后,在进行数据访问时就可通过访问业务实体对象来访问数据库。

② 建立DAO类

系统中DAO类可通过Hibernate Synchronizer工具自动生成,包括StudentDAO、AccountDAO和ManagerDAO类,这三个类都分别实现了接口IStudentDAO、IAccountDAO和IManagerDAO。这些DAO类主要是实现对数据库查找、保存、更新和删除等功能。

2.3.3 使用Spring装配组件

前面介绍的Action类、Service类和DAO类,这些类在传统的做法中,通常是在代码中通过互相调用组织在一起,这样做导致类之间的耦合度较高,一旦某些代码发生了改变,就需要对各个耦合的程序进行重新编译,维护的工作量很大。使用Spring来对它们进行管理,可以很好地解决这些问题。

⑴ Struts和Spring集成

通过Struts和Spring的集成,Struts中Action就可以被Spring进行管理,从而实现了在运行期对Action的依赖注入。Struts和Spring的集成可通过在Struts-config.xml中加入以下代码实现。

.ContextLoaderPlugIn”>

/WEB-INF/applicationContext.xml”>

⑵ 建立applicationContext.xml文件

applicationContext.xml是Spring的配置文件,该文件的主要功能是将Action类、Service类和DAO类进行装配,实现数据源的配置、SessionFactory的创建(主要用来实现Hibernate的初始化)、事务管理和业务逻辑事务的配置等功能。

3 结论

本文通过一个具体实例的实现过程介绍了使用SSH框架进行开发的步骤和方法。实践证明,采用SSH框架设计模式,可以将系统的设计进行很好的分工,使系统的层次结构更加清晰,降低模块之间耦合性,简化编程,提高软件开发效率,同时提高系统的性能和维护性,在开发大型可复用、可扩展和可维护的Web应用系统开发中体现出了它的优势。希望该方法可为刚开始学习SSH架构的软件开发人员提供一定的参考。

参考文献:

[1] 王美琴.基于J2EE的轻量级SSH架构整合研究[J].电脑知识与技术,2009.21:5718-5720

[2] 于湛麟,李仲秋,任永昌.SSH框架实现MVC架构的电子商务软件平台[J].计算机技术与发展,2012.10:169-172

[3] 王希望,孟祥书,王福顺.基于SSH架构的Web系统的开发方法[J].河北农业大学学报:农林教育版,2010.4:538-541

[4] 翟高粤.SSH框架扩展与集成的研究[J].煤炭技术,2011.8:194-195

[5] 翟高粤.基于J2EE技术的SSH框架的改进及应用[J].计算机时代,2012.10:24-26

[6] 陶维.基于SSH多架构Web系统设计及其应用[J].科技和产业,2009.3:101-104

第9篇:spring框架范文

关键词:框架 Struts Spring Hibernate

SSH是struts+spring+hibernate的集成框架,是当前Web应用程序开发采用比较多的一种开源框架技术。本文主要对SSH框架的技术优势及各组成部分的特点进行分析介绍。

一、SSH框架技术优势

SSH框架是基于传统J2EE框架的新技术,SSH框架继承了J2EE的分层架构模式,二者的不同之处仅在于层与层之间的实现方法。当J2EE框架和SSH架构完成相同的运算任务时,SSH框架消耗的系统资源最少。

SSH框架在业务对象的的平台专用性上没有特殊的限定要求,在SSH框架中业务逻辑的实现通过普通的Java对象即可完成。

SSH组合框架技术优势体现在四个方面:一、分离了Java代码和HTML代码,降低了对开发人员要求的复合度。二、是系统的层与层之间的工作相是对独立的,代码耦合度低。三、即使脱离了Spring环境的AOP机制,也不会妨碍AOP实现业务的功能。四、与SSH配合使用的Hibernate等夸平台技术开源性极强,促使了SSH框架的飞速发展。

SSH的技术优势使得采用SSH框架技术开发的系统具备了很强的可拓展性、可移植性。同时,采用开源的SSH框架能够大大简化系统开发的复杂度,缩短系统开发时间。

二、Struts

Struts与SSH框架一样同样具有开源性,合理恰当的使用Struts技术可以在一定程度上减少基于MVC模型的Web应用系统的开发时间,从而有效控制系统开发成本。事实上,绝大多数程序员在在使用Servlets和JSP的可扩展的应用时已经将Struts框架技术作为系统开发的标准。

Struts技术基于MVC框架,Struts的实现依赖Servlet和JSP实现。EJB 和JavaBean两个组件是Struts框架业务功能实现的基础部件;Action和ActionServlet部件是框架实现控制功能的重要部件;视图部分则是由若干存在内在联系的.JSP文件有机构成,来实现系统功能。其工作原理如图一所示:

1.使用者通过浏览器客户端发送HTTP协议的数据请求。

2.HTTP请求到达服务器后,经过控制器,使用框架结构填充Form Bean。

3.经过填充的数据请求通过框架中控制器的Action组件进行数据业务处理。

4.经过控制器处理过的业务数据调用Struts的基础部件实现业务逻辑。

5.将业务逻辑经过转换形成JSP业务进行处理,并将处理结果反或

6.用户在客户端或者浏览器上得到HTTP请求的响应。

三、Spring

Spring在整个系统体系中提供两种控架,一种是面向方面编程(AOP)容器框架,另外一种是轻量级的反向控制。

Spring的核心部分是轻量级控制反转(Inversion of Control,IoC)容器。通过外部的配置文件翻过来调用应用程序来替代原有应用程序调用的控制功能是控制反转的基本思想。

在框架中进行控制功能的创建工作就实现了轻量级控制反转,这样就能使控制功能的编写其从应用程序的编写中分离出来。在使用组件调用容器时,那么在框架中的控制功能创建中只需要给出调用组件所用到的对象。典型的轻量级控制反转工作过程如下:首先创建程序中以后所用到的所有对象,并进行对象属性设置,对相关的属性和惯性进行连接配置,最后再确定调用的方法和时间点即可。

Spring架构的反转控制提供了应用场景和复杂程度不同的两种注入方式:构造器注入和Setter依赖注入(Dependency Injection)两种注入方式。Spring支持在实际开发中应用的最为广泛方法注入Setter(Setter Injection)方法,这种方法使用起来更加直观、方便。

四、 Hibernate

在面向对象程序设计中,关系数据库中的表间的关系与对象间关系的匹配没有有效的转换来完成匹配,Hibernate的出现可以很好地完成二者之间的关系匹配问题。

Hibernate可以将对象间关系按照一定的逻辑与数据库中表之间的关系进行高耦合度的匹配,这种转换由Hibernate自动进行[20]。使用Hibernate可以减少原来面向对象程序设计时大量的程序与数据库之间SQL的转换,有效提高开发效率。

Hibernate是Java平台上高效的ORM映射框架。由于Hibernate使用了反射和运行时字节码生成技术,所以对于最终用户而言,Hibernate几乎是透明地运行。

Hibernate的执行流程如图二所示:

1. 通过实例化Configuration对象,解析文件,建立对象与数据库之间的映射关系。

2. 通过创建Session工厂,运用session变量,对数据库进行操作。

3. 通过创建事务Transation,对对象进行持久化操作。

4. 提交事务,关闭打开的会话,结束操作。

纵观整个开发过程,Hibernate承接应用程序和基础数据库,通过Hibernate,应用程序能够方便地将对象注入到数据库中。由执行流程可以看出,Hibernate通过配置文件及利用数据库作为支撑持续不断地向应用程序提供服务。换个意思来讲,是通过配置文件把普通Java对象直接映射到关系数据库中,并直接作为关系数据库的表存储起来。

SSH是开源的框架技术,它可以部署在AP ACH E等便宜的服务器上,可以脱离大型服务器的约束,从而节省成本开支。另外,SSH作为一款轻量级的框架,还能够与异步JavaScript和XML框架同时使用,能够较大程度上降低系统开销,还能够较大幅度改善用户的体,从而大大提高系统的性能。

参考文献:

[1]梁立新.项目实践――基于Struts Spring Hibernate的Java应用开发[M]. 电子工业出版社, 2006: 23~24

[2]陈天河. Struts Hibernate Spring集成开发宝典[M]. 电子工业出版社, 2007: 56~58

[3]穆福森,吴观茂. 基于Struts+Spring+Hibe

rnate Web应用开发框架技术[J].电脑知识与技术, 2006(2): 81~82

[4]罗时飞. 精通Spring2.0[M]. 电子工业出版社, 2007: 50~57

精选范文推荐