spring框架范例6篇

前言:中文期刊网精心挑选了spring框架范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

spring框架

spring框架范文1

关键词:java;spring;持久化;移动开发;大数据

中图分类号:TP311.52

Spring是目前最流行的企业Java应用程序开发框架,全球有百万计的开发人员使用Spring来创建高性能,易于测试的,可重用的代码。Spring自2004年1.0版,至今年5月宣布4.0版的第一个里程碑版本完成,在核心框架不断进化发展,功能基本趋于完善的同时,为了迎接HTML5和移动客户端、大数据、NoSQL、社交网络等领域的挑战,陆续了一系列新的功能组件,本一简要介绍和使用探讨。

1 统一的持久化存储―― Spring Data

Spring Data组件的目的在于统一和简化对各类型持久化存储的访问,以及对新的数据访问技术提供支持,如非关系型数据库,map-reduce框架,以及基于云的数据服务等。Spring Data包含许多子项目,一一对应到具体的数据库,目前提供了对十余种数据访问技术的支持,主要有JPA、JDBC Extension、Redis、MongoDB、HBase、Neo4j、 Apache Hadoop、GemFire等。

Spring Data构建了统一的数据访问层作为数据持久化的顶层抽象,其基本的接口是Repository,派生出CrudRepository,PagingAndSortingRepository等接口,用于声明领域对象的CRUD (创建、查询、更新、删除)操作、排序和分页方法等通用功能。

数据访问层操作的传统方法,需要至少实施一个Repository类,它包含所需的CRUD方法来访问存储的实体子集。而Spring Data则做了进一步简化,让你摆脱大部分的实现代码,只需定义一个接口,声明你的具体业务方法,Spring Data会在运行时间对方法声明、注释进行检查、分析,推导出查询语句,正确生成实现代码。下面举例说明:

public interface CustomerRepository extends Repository {

Customer findByName(Name name);

}

上面的代码声明了findByName方法,Spring Data根据方法名自动生成select C from Customer c where c.name = ?1(JPA)查询语句。如果查询复杂,无法用方法名表示,则可用注释说明。

public interface CustomerRepository extends Repository {

@Query("select c from Customer c where c.name = ?1")

Customer findByName(Name name);

}

Spring Data的优势在于减少代码的编写,定义方法的同时定义查询语句,使文档变得更清晰,查询语句和Spring上下文同时编译组装,可以减少代码编写中的语法错误。但由于各类持久存储差异很大,无法提供通用API,只是提供了统一的编码模式。加之实时生成代码,运行速度受影响。

2 移动Web应用开发――Spring Mobile

Spring Mobile是支持移动Web开发的Spring MVC扩展,包括三项功能,一是服务器端的移动设备探测。通过分析一个HTTP请求中的User-Agent头和其他请求头来识别手机或平板的设备属性,如屏幕尺寸,制造商,型号等。获得当前设备信息的方法有若干种,最简单的方法是如果有ServletRequest或WebRequest引用,可以用DeviceUtils获得,代码如下:

Device currentDevice = DeviceUtils.getCurrentDevice(servletRequest);

二是站点首选项管理,允许用户设置他要访问的是“普通”页面,还是“移动版”页面。即当前访问移动页面的用户可以切换到普通页面,以获得到某些移动页面没有的信息。三是站点切换,配置普通版网站和移动版网站使用不同的域名。即可以根据设备与指定的站点首选项将用户切换至最适合的站点。

Spring Mobile是在服务器端根据设备信息生成不同的页面返回客户端,与之相区别的,新兴起的响应式Web设计则是由客户端根据设备环境,自动调整页面布局和内容,长远看,响应式Web设计是将来的方向,因为不需要为每种设备做一个特定的网页版本,可以减少网页设计的工作量,但在目前响应式Web设计还未成熟,浏览器支持受限的情况下,Spring Mobile的方法则更可靠、实用。

3 Android本地开发框架――Spring for Android

Spring for Android是Android平台下的开发框架,与Spring 框架不同,它的目标是简化本地Android应用开发。其主要功能一是利用RestTemplate抽象层实现了REST客户端。RestTemplate与Spring其它模板类相似,RestTemplate的行为可以通过回调方法定义,HttpMessageConverter用来设定http内容的编组方式,它支持多种HTTP内容编组,利用Jackson或Gson实现了JSON编组、利用Simple XML Serializer实现了XML编组、利用Android ROME实现了RSS/Atom编组。下面举例说明:

String url = "http://localhost/search/web?v=1.0&q={query}";

RestTemplate restTemplate = new RestTemplate();

restTemplate.getMessageConverters().add(new StringHttpMessageConverter());

String result = restTemplate.getForObject(url, String.class, "SpringSource");

功能二是对Spring Social的支持。实现了OAuth客户端,能够支持Twitter、Facebook等主要社交站点的登陆。

Spring for Android可以简化Android 应用程序的开发,但是由于Android采用Intent方式实现应用生命周期管理,使得Spring Framework重要的依赖注入技术使用受限,影响了Spring在Andorid平台的进一步发展。

4 大数据处理――Spring XD

Spring XD是一个统一的,分布式,可扩展的系统,用于数据导入,实时分析,批量处理和数据导出,该项目的目标是简化大数据应用的开发。Spring XD建立在Spring Integration和Spring Batch基础之上,提供了一个轻量级的运行环境,可以容易的通过简单的DSL进行配置和组装。

主要功能一是支持各种输入源的高吞吐量分布式数据导入,如HDFS或Splunk等大数据存储系统。二是可以在导入数据时实时分析,例如收集度量和计算数值。三是可以通过批处理作业进行工作流管理,实现标准的企业系统(如RDBMS)与大数据系统(Hadoop)之间的结合。四是支持高吞吐量的数据导出,例如从HDFS、RDBMS或NoSQL数据库导出。

Spring XD用流(Stream)定义数据是如何收集,处理,存储或转发的。例如,某个流可以收集syslog数据,过滤再将其存储在HDFS中。可以用DSL定义流,DSL允许你使用UNIX管道和过滤器的语法建立简单的线性处理流程,定义复杂的流程则需要使用扩展语法。下面举例说明:

$ curl -d "time | log" http://localhost:8080/streams/test

上面的代码定义了一个名字为test的流,并将其发送给流服务器。流的内容为“time|log”,“|”符号表示连接数据源和数据接收器,流服务器会在预定目录中查找time和log的定义来设置流。在这个简单的例子中,定义time数据源每隔1秒发送当前时间,而log接收器则记录收到的time信息。删除流定义使用下面的命令:

$ curl -X DELETE http://localhost:8080/streams/ticktock

Spring XD使得Spring初步具有了大数据处理能力,填补了这方面的空白,但是功能还较弱,需要进一步增强。

虽然近年来,新兴的Web开发框架不断涌现,对Spring构成了威胁,但随着新的核心框架的,以及越来越多的新组件的开发,凭借优秀的核心功能和强大的扩展能力,Spring在企业级系统开发中的核心地位仍然牢固。

参考文献:

[1]罗时飞 精通Spring――深入Java EE开发核心技术 电子工业出版社 2008

[2]Craig Walls Ryan Breidenbach著 熊节译 Spring in Action(第二版)人民邮电出版社 2008

spring框架范文2

关键词:实验室信息管理系统;MVC模式;Struts框架;Spring框架;O/R映射

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)14-3716-03

The Design and Implement of LIMS System Based on Struts, Spring and Hibernate Software Framework

TANG Ying-mei

(Guangdong Electronic Technology School, Guangzhou, 510615, China)

Abstract: Based on the research of LIMS, LIMS is designed and implemented on Struts and Spring frame in which J2EE and MVC-based web design pattern is adopted. This paper makes use of the Spring framework by analyzing its principle and realization. It also points out that the Spring framework can be suitable for the majority request of general Web application in the function and performance. Due to its trait of "no intrusiveness", the Spring framework can easily integrate Hibernate to replace Entity Bean's O/R mapping solution and excellent Struts framework.In order to achieve the requirements of the various functions.

Key words: LIMS; MVC; Struts; Spring framework;O/R Mapping

1 引言

在现代实验室中,高度自动化的仪器设备和快速完善的分析方法的大量出现,使实验室的功能不断加强,数据量和信息量迅速增大,这些都对现代实验室的管理和正常运作提出了极高的要求。同时,作为一种信息资源,实验室的分析数据应该有规范的贮存和再加工能力,这就对现有实验室的管理提出了更高的要求。传统上基于人工管理的实验室管理模式受到了极大的挑战,而基于网络平台的实验室信息管理系统(LIMS)自然成了首选的方案。

随着实验室认证的逐步推广,WTO的加入,对实验室的整体运行水平、管理水平,特别是管理工具提出了更高的要求。在当今这样一个信息时代,如果一个实验室的管理停留在手工管理和纸袋储存数据的层次上,这是不可想象的,也必将面临被淘汰的危险。因此可见,LIMS―实验室信息管理系统的引入无疑会把实验室的管理水平提升到信息时代的最高水平。

2 研究现状

对于各种LIMS的开发一直是热点,但是大部分是基于 ASP 或 JSP 技术,在实现过程中没有考虑系统的扩展性、安全性。目前国内还少有利用 Struts、Spring、Hibernate 三种框架技术相结合的系统。该系统针对行业管理系统中考核指标的多变性,构建一种易于扩展的系统结构模型,提供网络化的LIMS。使用该系统能够在规范管理的基础上结合管理实践,充分满足实验室需求;对实验室工作流程进行科学、规范、系统的管理。本文阐述了基于Struts+Spring+Hibernate框架所开发的LIMS的体系结构、应用程序各层次设计的每一阶段以及所采用的关键方法和技术。

本文正文分为六部分。 第一部分简要介绍了LIMS的研究现状;第二部分概述了的基于Struts、Spring、Hibernate的研究现状;第三部分阐述了LIMS设计过程中使用的关键技术;第四部分介绍LIMS的框架设计;第五部分阐述了LIMS功能需求;第六部分阐述了Spring整合Struts与Hibernate的实现。

3 关键技术

3.1 MVC设计模式

目前几乎所有的Java企业应用程序都采用基于Web的用户操作界面,因此构建在可重用商业逻辑之上的Web层应用是非常重要的。MVC设计模式把应用程序抽象为Model(模型)、View(视图)、Controller(控制器)三个功能截然不同的部分[1]。三者既分工又合作地完成用户提交的每项任务,如图 1所示。

3.2 MVC模式在J2EE平台上的实现

J2EE模型提供了一个很好的企业应用框架及解决方法,提供了灵活的技术选择,但它只是一个应用开发框架,不能解决系统的所有问题;同时,多层企业应用框架在提高了软件的重用性和分解了问题的复杂性的同时,也使得代码庞大,层与层之间的控制关系复杂。MVC设计模式以它可以分离数据访问和数据表现,可以开发一个具有伸缩性的、便于扩展的控制器来维护整个流程的优势。MVC模式运用于J2EE平台的具体体系结构如图2所示[2]。

3.3 Struts框架[3]

Struts是Jakarta工程提供的用于开发Web应用软件的框架。它的目的是提高运用MVC模式开发Web应用的效率。它将MVC模式所具有的“分离业务逻辑和显示逻辑”的能力发挥到了极点,很好的帮助Java开发人员开发J2EE Web层。图 3是MVC模式中模型、视图、控制器的作用以及它们之间的交互,Struts框架是基于MVC的。

3.4 Spring框架

Spring是一个由多个相对独立子框架组成的完整的应用框架,它可以在很多应用层面发挥作用,在具体的使用中,开发者可以将其无缝集成起来,成为一个全面的应用框架。如图4所示。

3.5 Spring对Struts的支持

Spring为了集成Struts,专门提供了org. Spring framework. Web. Struts包,Action Support在集成Spring上下文上起到很重要的作用。[4]

通过在Struts-config.xml中配置如下内容的方式来初始化Spring ApplicationContext,使用到了Struts提供的扩展机制(并不是所有的Web框架都提供了类似的扩展机制)。Spring和Struts使能应用需要借助于ActionSupport,才能够使StrutsAction访问到Spring ApplicationContext。开发继承于ActionSupport的Action,在这些Action中就可以使用到Spring受管JavaBean(借助于Spring ApplicationContext的getBean()方法获得它们),进而,就可以享受到业务逻辑、安全服务等。开发ActionSupport的子类是非常简单的事情,它同开发100%Struts Action子类几乎不存在任何差别。

3.6 Spring对ORM的支持

Hibernate是对象/关系映射的解决方案,简写为ORM。所谓ORM,简单地说就是将Java中的对象与对象关系,对应到关系数据库中表与表之间的关系。

为使开发者能够以统一的方式同数据库访问技术(比如,JDBC,Hibernate, JDO, Toplink)进行交互,Spring提供了允许开发者可以在不同的数据访问技术间切换、而且在切换的同时不用考虑异常处理的DAO ( DataAccess Object)抽象。

Spring提供了一套抽象DAO类,供开发者扩展,这有利于以统一的方式操作各种DAO技术,比如JDO, JDBC。这些DAO类提供了设置数据源及相关辅助信息的方法,其中的一些方法同具体的DAO技术相关。通过SpringDAO抽象,能够将具体的DAO技术的异常,比如HibernateException, SQLException,转换成DataAccessException为根的异常处理体系中。针对Hibernate的Spring DAO抽象类是Hibernate DaoSupport,开发者需要为它配置Hibernate Session Factory,通过其子类,开发者可以获得Hibernate Template。当然,也可以手工配置Hibernate Template。

目前Spring框架借助于Spring IoC和Spring AOP对Hibernate进行了最为有效的集成。

4 LIMS的框架设计

本系统采用在J2EE架构下的MVC模式,整个技术框架的组成为:视图层采用Struts框架进行表单验证及页面显示,业务层采用Spring框架,实现事务管理和宏观调控,数据持久化层使用Hibernate技术实现对象关系映射和持久化操作。基于Struts+Spring+Hibernate 框架的实验室信息管理系统的框架图如图5所示。

系统使用B/S架构模式,用户通过Internet/Intarnet从浏览器访问LIMS管理平台,系统部署在Tomcat或JBoss等应用服务器上,数据保存在数据库服务器,具体的数据库产品可以根据用户的喜好来选择,在开发阶段,使用了数据库产品Oracle9i数据库。

4.1 表示层(The Presentation Layer)

1) 管理用户的请求,做出相应的响应。

2) 提供一个 Controller,委派调用业务逻辑和其它上层处理。

3) 处理异常,抛给 Struts Action。

4) 为显示提供一个模型。

5) UI 验证。

4.2 持久层(The Persistence Layer)

1) 查询对象的相关信息。

2) 存储,更新,删除数据库记录。

4.3 业务层(The Business Layer)

1) 处理应用程序的业务逻辑和业务校验。

2) 管理事物。

3) 允许与其它层相互作用的接口。

4) 管理业务层级别的对象的依赖。

5) 在显示层和持久层之间增加了一个灵活的机制,使得他们不直接的联系在一起。

6) 通过揭示从显示层到业务层之间的 Context 来得到 business ser-vices。

7) 管理程序的执行(从业务层到持久层)。

5 LIMS功能需求

用户管理功能。在实验室中,不同类型的用户使用该系统的权限并不相同,可以执行的各种操作也不相同,这种复杂的用户权限验证需求可以总结为:用户资料管理,可控制的资源限制访问。

实验室信息管理功能。该部分包括实验室信息(包括资料、样品、业务等)、客户的添加和查询两大部分。实验室信息管理是面向系统管理员和各部门主管,包括了市场营销中心、业务技术中心、综合管理部办公室、检测中心和计量中心五大部门,这几个部分包括各自部门数据的新增、删除、修改和查询等功能。

一般数据管理功能。该部分功能是面向一般技术人员,技术人员可以在平台添加、查询、删除自己所管辖的功能点技术信息和业务信息,系统管理员能够这些信息进行综合管理。

系统维护功能。面向系统管理员,包括了对平台运行状态的维护、日志查看、用户密码回复等功能。如图7所示系统用例图。

6 Spring整合Struts与Hibernate的实现

利用各个框架的整合实现了LIMS系统。通过该系统可以方便平台管理员、各部门主管及一般用户的各种操作,如部门主管对外的业务联系、对内的人员管理、对所属部门的实验室信息的管理、决策。平台管理员通过系统实现系统管理、权限分配、各种信息管理等。不论用户还是实验室各种资料、数据和信息都有各自的属性,它们之间可能是一对一也可能是一对多、多对多的关系。

本系统中的用户界面层就是利用Struts来实现的,它本身就是结合MVC架构模式在这里负责将用户数据传入业务层,以及将业务层处理的结果返回给用户,此系统属于较简单Web应用,采用了OpenSessionInView模式处理LazyLoad问题,这样可以在用户视图中使用get ,set方法来方便地获取关联对象。

为了处理庞大的Action和ActionForm问题,在此准备使用DynaActionForm(DynaValidatorForm)和DispatchAction以及动态验证框架来解决。及使用Tile来解决框架问题。使用自定义标签处理分页和身份验证问题。

而业务层是利用Spring来实现的,Spring框架最得以出名的是与Hibernate的无缝链接,Spring对Hibernate提供了90%以上的封装,使程序开发人员不必去关心Session的建立、关闭、以及事务使程序开发人员能够专心的关注业务逻辑。为各个模块分别构建Service层的BusineusService接口方法,同时在用户界面上加入身份验证机制以及在页面访问上加入分页方法和业务逻辑方法。

在数据访问层用Hibernate来实现,有了Spring的封装以后,要对Hibernate做的就是正确地实现对象关系的映射。由于此层处于系统的最底层,准确无误的实现对象之间的关联关系映射将起着至关重要的作用。

对于业务层而言这里需要认真考虑每一个业务逻辑以及相关的所有能用到的持久层对象和业务对象,如果没有对他们之间的关系进行认真细致的分析和设计就会很容易的产生模块之间的依赖关系,为了解决这个问题在这里可以通过配置Spring框架中的applications-service.xml来建立一种依赖注入机制。经过Spring框架与Hibernate框架的结合把模块之间的类的耦合关系大大的降低了,因为Spring是一个服务于所有层面的应用程序框架,它提供了bean的配置基础,AOP的支持,JDBC的提取框架,抽象事务支持等等。

模块之间的层次关系变得比较清晰,这样使得代码可复用性和可维护性都得到了很大的提高,从而达到了缩短软件开发周期提高软件质量的最终目的。同时在以后系统的维护过程中对代码的调整也会变的容易许多,因此达到了一般软件开发设计人员对于程序设计的高内聚,低耦合的最佳效果。图8及图9中绘出了基于此种框架下系统平台管理员与一般用户相应的处理时序图。图10给出了次系统实现后的界面图。

7 结论

本文结合目前主流的基于J2EE平台和MVC设计模式的Web应用体系,采用Struts和Spring及Hibernate框架设计了一个基于Web的实验室信息管理系统。用一个多层体系来作为web应用程序的高级体系结构,Spring框架能被用于业务逻辑层管理业务对象,提供声明性事务管理和资源管理。Hibernate是一个强有力的O/R映射框架,提供集成层的服务。Spring和Hibernate能很好地结合。

通过将Web应用程序划分成不同的层和面向接口编程,每一层的技术可以采用相应的技术来取代,如表述层技术有Struts、Tapestry等。每一层的数据、规则和逻辑可以独立更新。应用程序中采用控制转换(IoC)来整合业务逻辑层和集成层,而使用Service Cotroller的设计模式来整合表述层与业务逻辑层,使系统的开发工作更简单、容易。这样的应用系统具备易维护性、兼容性、高效性、安全性和友善性等特点,该系统的建成大大提高了实验室的管理水平和工作效率,减少了实验室开支,提高了产品质量,为领导决策提供了可靠的数据,增强了企业的竞争力。

参考文献:

[1] 孟庆强,宗平.J2EE与三层Web应用开发[J].计算机与现代化,2004,103(3):50-53.

[2] 潘利群,李耿.MVC模式在J2EE中的实现[J].2004,26(5):52-54.

spring框架范文3

>> 基于Spring的Web开发 基于Struts和Hibernate框架的Web应用研究与实现 基于Struts+Spring+Hibernate的在线大学生评价系统的应用研究 基于Struts\Spring\Hibernate架构的设计与实现 基于Spring Security的web应用安全控制研究与实现 基于Flex和Spring的应用开发架构研究 基于Struts+Spring+Hibernate框架的科研管理系统的设计与实现 基于Struts2+Spring+Hibernate框架的网上评教系统的设计与实现 基于Spring+Hibernate的权限管理组件设计与实现 基于Struts\Spring\Hibernate技术饰品商店设计与实现 基于ExtJs、Spring和iBATIS的Web系统应用研究 基于Spring+DWR+EXT框架的web应用设计与实现 基于Struts和Hibernate的网络商店的研究与开发设计 基于Struts/Spring/Hibernate集成框架的人力资源管理系统设计与实现 基于Struts+Spring+Hibernate框架的LIMS的设计和实现 基于Matlab的Web图形开发应用研究 基于Struts框架的Java Web应用开发研究 基于JSF+Spring+Hibernate的人事管理系统 基于Spring+Struts+Hibernate注塑模具报价系统的研发 基于Struts+Hibernate+Spring的轻量级J2EE框架 常见问题解答 当前所在位置:.

[4]spring AoP学习――spring设计模式之模式[EB/OL]..

[5]GARY MAK,JOSH LONG.Spring enterprise recipes[M].Apress,2009:161.

[6]如何使用spring的autowire为servlet注入bean[EB/OL].http:///yaerfeng/article/details/7368541.

spring框架范文4

关键词: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.

spring框架范文5

关键词:轻量级框架;Struts;Spring;Hibernate;大学生评价

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2011)18-4351-02

Application Research of On-line College Students Evaluation System Based on Struts, Spring and Hibernate

LIANG Bi, ZHOU Ren-ming

(Department of Computer Science, Sichuan University of Arts and Science, Dazhou 635000, China)

Abstract: For the purpose of solving the insteabiligy of current College Students Evaluation System, this paper designed and implemented the system by adopting popular open-source frameworks, namely Struts,Spring and Hibernate. it not only makes up for the disadvantages of traditional Web developing technology, but also achieve the target of systematic layers and high cohesion, low coupling between components with lightweight, cross-platform advantages, improving the maintainability, extensibility and reusability of the System.

Key words: lightweight framework; Struts; Spring; Hibernate; college students evaluation

随着信息技术的发展以及现代高校管理的需求,开发一套高效而且稳定的大学生评价系统迫在眉睫。本项目开发目的在于摒除以往学校安排大量的人力、物力去调查处理繁琐的资料统计工作,充分利用网络资源共享的优势来有效地评价学生。传统的C/S模式已经无法满足现代的需求,随着各类开源框架的诞生,其良好的开发模式、结构框架搭建、以及开源信息的共享为系统开发带来了革命性的进展。其中,最具代表性的有Flex、Struts、Spring、Hibernate以及iBATIS等开源框架,它们以其轻量开发等诸多优势迅速占据了现在市场。本系统就是使用当前主流的SSH(即Struts+Spring+Hibernate)开源框架技术来进行开发。

1 Struts、Spring和Hibernate框架

Struts、Spring和Hibernate是目前多层Web系统开发中主流的开源框架,本文采用这三种开源框架实现了大学生评价系统的三层架构模式。

1.1 Struts框架

Struts框架是一个优秀的基于MVC模式的开源框架,主要包括三个部分:模型(Model)、视图(View)和控制器(Controller)[1]。它主要采用JSP与Servlet技术实现,把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,通过一系列的Action、ActionForm或者Spring里封装的各种JavaBean来实现模型,运用标签库来生成视图,使用简单的配置文件来完成控制。它主要的设计理念是通过控制器将表示逻辑和业务逻辑解耦,以提高系统的可维护性、可扩展性和可重用性。

1.2 Spring框架

Spring是一种应用程序开源框架,其作用贯穿于整个应用程序的各个层面当中,它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情,它的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它提供了很多基础功能,如事务管理、持久化框架集成等,并将应用逻辑的开发留给开发者[2]。

1.3 Hibernate框架

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库[3]。Hibernate最具革命意义的是它可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration,这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。

2 系统设计

2.1 系统功能分析

本大学生评价系统开发的总体目标是使高校的学生评价工作系统化、规范化、自动化,从而达到缩短学生工作处有效评价学生的时间,提高他们的工作效率,节约人力和物力。为了实现该目标,本评价系统将评价人员分为7个角色,分别是学生、班委、教师、班主任、系辅导员、系主任、院领导。当用户注册完毕后,就可以登录该系统选择被评价的学生,对其各方面进行评价。评价的内容主要包括学生学习情况、奖励情况、生活情况、业余情况等。当评价完毕后,用户可以查看该学生的评价成绩以及排名情况。其中,评价最终得分采用加权平均算法来计算[4],其结果采用百分制,根据得分多少,将被评价学生分为5个等级和5个好评率,具体如表1所示。

2.2 系统功能设计

根据上述系统功能分析,可以得到整个系统有两大模块,即前台和后台。前台主要完成相关角色去评价要被评价的学生以及查看评价的结果,后台主要完成对用户角色以及评价信息等的管理,包括的主要功能模块如图1所示。

spring框架范文6

目前,很多B/S模式的图书管理系统是基于传统的Jsp Model 1模型建立的。随着用户需求的变化,要扩充系统功能,改善用户界面。传统的Jsp Model 1模型建立的系统形式固定,HTML和Java强耦合在一起,导致页面设计与逻辑处理无法分离。功能划分不清,不便于系统的维护和升级。本文结合SSHA技术,设计并开发了一个图书管理应用系统,该系统可扩充性良好,可以重复利用组件进行其他项目的开发。 

1系统使用技术 

Struts是一个基于MVC体系结构的Web应用程序的框架,具有组件模块化、灵活性和可重用性等优点,极大地简化了Web应用程序的开发。它合理地将用户表示逻辑、业务逻辑和控制逻辑分离,使得开发过程变得简洁清晰,提高了软件的可维护性和可重用性。View(视图)由包含一组可扩展的自定义标签库(Tag Lib)JSP来建立,Model(模型)主要由ActiomFormBean来实现,业务逻辑通常由JavaBean或EJB组件来实现,控制器主要由Action Servlet实现.Struts的核心是ActionServlet.ActionServlet的控制参数在配置文件config.xml中。 

2系统的结构和设计 

2.1系统结构 

图书管理系统包括系统管理、图书借阅与返还管理、读者管理和图书管理4个模块。系统管理模块包括对系统参数的维护、读者权限的设置等;图书借阅与返还管理则是处理日常业务,包括图书的借出、归还及查询等;读者管理则是对读者信息进行维护,包括办证、挂失等,以及个人信息的建立与查询;图书管理是对图书资料进行维护,包括查询、修改、增加、删除及打印报表等。 

2.2系统设计和分析 

2.2.1系统总体架构 

图书管理系统框架采用Struts、Spring与Hibernate构架进行开发。Struts框架将业务数据、页面显示、动作处理进行分离,降低系统的藕合性。在Web页面采用Struts强大的TagLib标记库,能灵活动用,大大提高开发效率。Hibernate框架在系统中提供持久层支持,通过MyEclipse提供的Hibernate反转工程工具,为数据库中的数据表生成相应的POJO(plain object Java object)类和映射文件,并生成对数据进行增、删、减、查的方法。这些方法封装在DAO类中。spring管理系统组件间的依赖关系,系统采用面向接口编程的方式,定义业务层的组件接口,独立开发各个组件,然后根据依赖关系组装组件。以读者管理模块为例,系统组件的注入关系为图1所示。图1系统的注入关系图 

除此,Spring通过声明的方式给系统增加事务支持。以借书模块为例,在业务层增加的事务支持代码是: 

class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 

read?only="true" /> 

read?only="true" /> 

read?only="true" /> 

expression="execution(* liberary.biz.lendbookbiz.*(..))"/> 

系统开发结构如图2所示。 

图2系统开发结构 

2.2.2Spring和Hibernate框架开发持久层 

对于Hibernate的应用主要是应用配置文件即0/R映射配置文件和hibernate.cfg.xml配置文件。通过反转工具生成的0/R映射配置文件表达出持久类与数据库表的映射关系。Hibernate将根据这个映射文件来生成各种SQL语句,实现数据的访间。在Hibernate的hibernate.cfg.xml配置文件中,定义链接池、访问数据库的URL资源定位地址、数据库名称、数据库方言MySQLDialect、数据库链接驱动程序等Hibernate运行需要的主要属性信息。 

使用Spring整合Hibernate时不需要hibernate.cfg.xml文件。首先,在applicationContext.xml中配置数据源(dataSource)bean和session工厂(sessionFactory)bean。其次,Spring提供了HibernateTemplate,用于持久层访问,该模板无需打开Session及关闭Session。它只要获得SessionFactory的引用,便可以打开Session,并在持久化访问结束后关闭Session,程序开发只需完成业务逻辑层,DAO层的开发(如对数据库中数据的增、删、改、查)则由HibernateTemplate完成。以读者管理模块为例,Spring和Hibernate整合后的ApplicationContext配置文件代码: 

class="org.apache.commons.dbcp.BasicDataSource"> 

value="com.microsoft.sqlserver.jdbc.SQLServerDriver"> 

 

… 

 

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 

 

 

 

 

 

 

org.hibernate.dialect.SQLServerDialect 

 

 

 

 

 

entity/User.hbm.xml 

 

2.2.3spring 和Struts框架对Action的管理 

Struts框架是基于MVC(model view controller)模式的框架。使用Struts框架只需关注相应的ActionBean、ActionFormBean和JSP组件的开发。使用Struts的Taglib标记库,灵活动用,大大提高JSP组件的开发效率。使用MyEclipse添加Strut支持时会自动在Web.xml文件中配置action Servlet,在Struts?config.xml文件中配置message?resources5。在Struts?config.xml文件的设计视图中使用向导创建Action和 Action Form 。在用户管理模块的用户注册子模块中,Action和Action Form的配置如下: 

 

 

 

 

attribute=" UserForm " 

name=" UserForm " 

parameter="operate" 

path="/reg" 

scope="request" type=" liberary.web.action.UserAction "> 

 

 

 

 

在UserRegAction中使用Biz层提供的接口,判断用户注册是否成功,注册成功,转入首页,否则,转入错误页面。使用Spring整合Struts时,Struts中的Action由Spring进行创建,利用Spring提供的ContextLoaderPlugIn插件即可做到Spring与Struts的无缝集成。Struts?Config.xml的插件代码为: 

value="/web?INF/applicationContext.xml" /> 

把Spring配置文件的位置告知插件,并将Action的类别配置为Spring的类。在Spring的配置文件applicationContext.xml中配置Action bean,并通过Spring的依赖注入关系,注入相关的Biz信息,对应的配置信息为: 

将Struts配置文件中Action类别配置为“org.springframework.web.struts.DelegatingActionProxy”,注册子模块UserAction的配置为: 

attribute=" UserForm " 

name=" UserForm " 

parameter="operate" 

path="/reg" 

scope="request" 

type="org.springframework.web.struts.DelegatingActionProxy"> 

2.2.4使用Ajax改进用户体验 

在用户进行注册子模块中,注册页面使用Ajax页面无刷新技术。在客户端,当用户名输入框失去焦点时,信息己发送至服务器端,并判断用户名是否存在,若已存在,则弹出对话框提示。Ajax技术中使用了Dwr框架。Dwr是在Apache许可下的一个开源的解决方案,它允许在浏览器里的代码使用运行在Web服务器上的Java函数,就像它就在浏览器里一样。Dwr使得浏览器不用刷新页面就可以从远程Web服务器取得用户需的数据,这种无刷新页面的交互方式大大提高Web页面的响应时间。具体做法是先导入Dwr的jar包,然后配置Web.xml和/Web?INF/下的dwr.xml文件。Dwr可以将普通的类成JavaScript可以调用的脚本对象。在用户注册子模块中,Dwr的类是在Spring配置文件中定义的javabean,dwr.xml配置文件如下: 

在页面代码中要导入/dwr/interface/JPetNameCheck.js、dwr/engine.js、dwr/util.js脚本,通过脚本对象调用方法,第二个参数是回调函数的函数名。 

相关精选