spring框架范文

时间:2023-03-11 04:08:41

spring框架

spring框架范文第1篇

关键词:Spring;Web;AOP;IoC

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

The Research of AOP on Spring Framework

WANG Xiao-jun1, ZHANG Dian-long2

(1.Department of Computer Engineering, Shandong College of Information and Technical, Weifang 261061, China; 2.Department of Software Engineering, Shandong College of Information and Technical, Weifang 261061, China)

Abstract: Spring is a programming framework, that implements the techonology about Aspect-Oriented Programming. So anyone can make the Spring framework that manage any object to support AOP easily. This paper bases on the realized project,that it has expatiated on the technological advantage and application value by using AOP.

Key words: Spring; Web; AOP; IoC

当Java在Web开发领域获得前所未有的成功之后,Web程序员纷纷从PHP、ASP等技术阵营转移到Java阵营。然而随后几年Java程序员在开发EJB时,发现它过于复杂,且难以进行单元测试,恰巧这个时候,.NET技术开始发展起来。Java阵营迫切需要一个实用的框架来加速Web和企业级软件的开发,以Spring为代表的轻量级框架应运而生。

1 开源框架 Spring简介

1.1 Spring简介

Spring是一个非常优秀的轻量级开源框架,由RodJohnson创建,其组成部分从Web MVC一直到数据持久化访问,是一个完整程序结构体系。简单地说,Spring是一个轻量级的IoC和AOP容器框架,通过Spring的IoC容器,我们将关注点放在需要实现的业务逻辑上。对AOP的支持则能动态的增强业务方法。Spring既是全面的又是模块化的。Spring有分层的体系结构,这意味着开发者能选择使用它任何一个独立的部分,而它的架构又是内部一致。Spring不会给你的工程添加对其他的框架依赖。Spring可以称得上是个一站式解决方案,提供了一个典型应用所需要的大部分基础架构。它还涉及到了其他framework没有考虑到的内容。Spring不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块。

Spring之所以能迅速在Java开发人员中流行,是因为Spring具有以下特点。

1)设计良好的分层结构,使得开发人员可以很简单的进行扩充,并引入先进的设计理念。

2)以IoC为核心,促使开发人员面向接口编程,可以养成良好的编程习惯,从而便于程序的扩充和维护。

3)良好的架构设计,使得应用程序尽可能的依赖应用程序的环境,从而使应用脱离了环境的影响。

4)Spring能够代替EJB。如果开发人员原来使用EJB,那么使用Spring后还可以继续使用EJB。如果从头开始开发应用程序,则使用Spring提供的功能就可以代替EJB。

5)Spring MVC很好的实现了MVC2,并提供了很简单的对国际化开发与资源的支持,而且可以与Spring提供的IoC和AOP联系起来。

6)Spring可以与其他框架良好的结合,例如Struts、Hibernate等结合,这使应用开发更为容易。

1.2 Spring AOP原理

AOP全称Aspect-Oriented Programming 中文直译为面向切面(方面)编程,用于解决OOP中无法很好解决的问题。它从另一个角度来考虑程序结构以完善面向对象编程,OOP将应用程序分解成各个层次的对象,而AOP将程序分解成各个方面或者说关注点,这使得可以模块化诸如事务管理等这些横切多个对象的关注点。

大多数AOP定义都是关于如何使交叉业务模块化。如图2所示显示的是业务交叉的示意图。如果由于需求的变更,我们要取消一部分方法中的开启事务或结束事务处理的功能,此时,我们就需要手工逐一删除这些方法中的事务处理语句。使用AOP可以在一个地方定义通用功能,只要声明是定义何时何地应用这些功能,就可以在需要新功能的地方修改代码。

2 Spring中的AOP实现及应用

Spring框架中包含一个AOP实现,是Spring框架的重要组成部分,实现了AOP规范约定的接口。Spring中的AOP主要使用基于拦截器的方式,能够创建连接点,能够对方法调用连接点进行相关的拦截。Spring使用纯Java的方式来实现AOP,Spring AOP的植入过程是在运行是由Spring使用Java的机制来完成的。Spring AOP依赖于Spring的核心IoC容器,并与容器融为一体,因此可以在配置文件中声明应用AOP功能。

在Spring配置文件中分别配置通知、切入点、切面,然后使用工厂Bean等配置业务对象的,按部就班的进行Spring AOP的配置。

2.1 创建通知

Spring的连接点是建立在方法拦截基础上的,这意味着Spring通知可以在方法调用的各个地方植入系统中。因为Spring可以在方法执行的各个地方植入通知,所以通知有不同的类型。

2.2 定义切入点

切入点是根据类的方法是否满足特定的规则,来决定是否在合适的地方植入通知。切入点的描述重点是方法的描述。方法的描述涉及到几个方面,包括方法名称的描述、所带的参数、所处的类、执行的流程等。

Spring框架中的切入点主要分为静态切入点和动态切入点。其中静态切入点基于方法和目标类进行切入点判断而不考虑方法的参数。在大多数情况下,静态切入点是高效的、最好的选择。Spring只在第一次调用方法时执行静态切入点,以后每次调用这个方法时就不需要再执行,所以性能比动态切入点好。

2.3 定义

的工作机制很简单,就是当我们需要使用某一个类时,由Spring通过一定的机制,创建一个我们所需类的对象,对象跟实际对象实现相同的接口或者是实际对象类的一个子类。当执行对象上的一个方法时,其交由一个回调对象来处理,而我们可以自定义这个回调对象,从而加入自定义的程序逻辑,即AOP中通知。因此,在系统中就需要一个负责根据一定的策略,创建对象的工厂角色,在Spring的AOP实现中,ProxyFactoryBean正是扮演了这个角色。

3 AOP应用实例

考虑一个超级玛丽游戏设计,在游戏的初始化后,人物每次前进一步都可能碰见方块的阻挡,玛丽是否打碎砖块?定义GameRole接口,利用四个方法表示玛丽的行走。四个方法都是简单的坐标变换,而在游戏中重要的就是玛丽在行走的过程中会遇到一些方块,打碎这些方块会爆出一些东西,也就是说四个方法都应该调用一个doBox()方法来表示打碎物品后的处理。

在四个方法中都应有doBox()方法,而该方法可能有很多的内容,同时玛丽还有可能增加飞行和游泳等动作,这样就造成了大量的代码重复,这个时候就要考虑使用AOP来解决了。

编写一个切面,定义doBox方法作为行走方法的后置通知;首先定义一个名为afterPointcut的切点;接着定义一个后置通知;编写配置文件game-config.xml:

最后定义一个游戏运行代码。

当然这只是一个简单的模拟游戏,实际还有很多问题这里没有解决,不过只要熟悉了AOP的使用,一定可以将游戏制作的是否完善。经过这样设计的系统,符合MVC设计模式,合理的划分了系统层次,实现了松散耦合的思想。同时加快了系统的开发速度,增加了系统整体部署的可伸缩性,改善了系统的应用性能。

4 结束语

本文探讨了一种新的编程思想和开发技术,借助Spring AOP,使得Spring成为成功的J2EE架构框架,它使得开发人员可以集中关注于系统的核心商业逻辑,使用AOP来灵活处理一些具有横切性质的系统级服务,已经成为一种非常适用的解决方案。

参考文献:

[1] 张国平,万仲保,刘高原.Spring AOP框架在J2EE中的应用[J].微计算机信息,2007(36):254.

[2] 罗时飞.精通Spring2.0[M].北京:电子工业出版社,2007:43-198.

[3] 石丹丹.面向方面编程模式的探讨[J].武汉理工大学学报,2005,27(1):93-95.

[4] 张钰.精通Spring 2.x Java Web开发[M].北京:电子工业出版社,2008:76-115.

spring框架范文第2篇

关键词 Struts2框架;Spring框架;Hibernate框架

中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2013)20-0049-01

1 Struts2、Spring和Hibernate三大框架简介

框架是JavaEE开发领域炙手可热的一个名词。目前技术领域存在很多种框架技术,能够有效的解决JavaEE应用开发中很多通用的问题,其中Struts2、Hibernate以及Spring是目前最主流的、使用最广泛的开源框架,每个框架专注于解决不同的问题,具有很强的代表性。其中,Struts2框架是一个MVC框架;Hibernate框架是一个ORM框架;而Spring框架是一个综合性的框架,是一个轻量级的解决方案。这三个框架往往各司其职,在应用中的不同层面发挥其作用。

2 Struts2框架工作原理

Struts2框架已经盛行多年,然而Struts2与Struts1之间并不是扩展和升级的关系。Struts2是著名框架WebWork的扩展,WebWork是一个很优秀的MVC框架,但是由于是一个新兴的框架,在一段时间内没有被广泛使用。后来,Struts和WebWork社区决定将二者合并,于是推出了Struts2框架。Struts2框架兼具Struts1和WebWork的优点,从而得到了广泛的使用。

Struts2的工作原理比较复杂:

1)客户端向服务器端提交请求,容器初始化HttpServletRequest请求对象。

2)请求对象被一系列的Servlet过滤器过滤。Struts2中的过滤器有3种:①ActionContextCleanUp过滤器,是一个可选的过滤器,主要用来集成其他框架;②其他插件的核心过滤器,譬如:SiteMesh插件的过滤器;③FilterDispatcher过滤器,是Struts2 API中提供的过滤器,是必选的过滤器。

3)FilterDispatcher过滤器调用ActionMapper,决定该请求是否需要调用某个Action。

4)如果请求需要调用某个Action,ActionMapper将通知FilterDispatcher过滤器把请求的处理交给ActionProxy来处理。

5)ActionProxy通过Configuration Manager解析框架的配置文件struts.xml,找到需要调用的Action类。

6)ActionProxy将创建一个ActionInvocation实例。

7)ActionInvocation实例使用命令模式回调Action中的execute方法,Action调用业务逻辑类完成业务逻辑。在调用Action的前后,将调用该Action涉及的相关拦截器。

8)Action执行完毕后,ActionInvocation根据struts.xml中的配置找到对应的返回结果,返回给JSP、FreeMarker等模版文件。

3 Hibernate框架的作用及其对象状态

Hibernate是一个ORM(Object-Relational Mapping)框架,主要作用是简化应用的数据持久层编程,不需要编程人员花大量的时间编写SQL和JDBC代码。可见,Hibernate框架位于应用层和数据库之间,解决数据持久层编程。Hibernate框架主要包括持久化对象(persistent Object):是Hibernate框架中非常重要的组成部分,简称为PO。PO用来映射数据库中的记录,可以通过修改PO来修改数据库记录;包括Hibernate属性文件(hibernate.properties):使用Hibernate进行数据持久层编程,相关的数据库访问信息需要在Hibernate属性文件中配置,譬如,数据库驱动类、连接串、用户名、密码等,也可以使用名字为hibernate.cfg.xml的xml文件配置属性;还包括Hibernate映射文件(XML Mapping):持久化对象映射数据库中的记录,其映射关系依靠Hibernate框架的映射文件配置,映射文件是XML文件,往往使用*.hbm.xml形式命名,其中*是持久化对象的类名。

Hibernate框架是一个完整的ORM框架,以对象为基础,通过操作对象,进一步操作对象关联的数据库记录。持久化类与数据表对应,持久化的对象则映射数据库记录。持久化的对象有三种状态:瞬时状态,当通过new操作符实例化了一个对象,而这个对象并没有被Session对象操作,也就是该对象没有与一个Session对象关联时,那么这个对象就称为瞬时状态对象,瞬时状态的对象与普通对象没有区别,没有与数据库的记录有映射关系;持久状态,如果一个对象与某一个Session对象关联,例如被Session对象刚加载的、刚保存的、刚更新的,那么该对象就称为持久状态对象。持久状态的对象与数据库中一条数据相对应,并拥有持久化标识。当持久状态的对象有改变时,当事务提交后,Hibernate会自动检测到对象的变化,并持久化到数据库中;脱管状态,当与持久状态对象关联的Session关闭后,该对象就变成脱管状态。脱管状态的对象引用依然有效,可以继续使用,当脱管状态的对象再一次与某个Session关联后,脱管状态对象将转变为持久状态,脱管期间进行的修改将被持久化到数据库中。

4 Spring框架的模块

企业级应用开发总是涉及方方面面,Spring框架是一个轻量级的解决方案,致力于创建“快装式企业应用”。Spring框架包括一系列的特性,被组织在七个模块中,可以把Spring框架看成一个标准的开发组件。Spring框架被设计成无侵入式的方式,即企业应用可以根据需要选择Spring框架中必要的组件,而忽略其他部分,以做到最小范围依赖的Spring框架。

Spring框架包含了7个模块,每个模块对于解决不同的问题。Spring Core模块:是最核心的模块,封装了Spring框架核心包,主要提供了Spring IoC(控制反转)容器。IoC是Spring框架的基础,所有其他特性都是基于IoC之上;Spring Context模块:提供了对Spring中对象的框架式访问方式,并包括国际化、事件传播等特性;Spring DAO模块:提供了JDBC的抽象层,是集成JDBC的封装包,能够避免JDBC繁琐冗长代码,同时还提供了声明性事务管理特性;Spring ORM模块:提供了集成常用ORM框架的封装包,包括JDO、JPA、Hibernate、iBatis等。使用该模块可以更为便捷的使用ORM框架,而且还可以同时使用Spring的其他特性,如声明性事务等;Spring Web模块:提供了Web开发的一些基础特性,如上传文件等,同时提供了与Web框架集成的封装包,如集成Struts2框架;Spring AOP模块:AOP(面向切面编程)是Spring中除了IoC外的另外一个核心概念,该模块提供了符合AOP联盟规范的AOP实现,可以降低应用的耦合性,提高扩展性;Spring MVC模块:该模块提供了一个MVC框架。Spring框架包含了一系列的特性,可以根据应用的具体需要来选择使用部分组件。Spring框架可以在任何类型的应用中使用,譬如:桌面应用、Web应用、C/S应用等。

参考文献

[1]柯常钦,史毓达.基于SSH框架的Web应用系统开发研究[J].湖北第二师范学院学报,2010(08):102-105.

[2]符钰.基于Struts2+Hibernate3+Spring3框架的Web[J].金华职业技术学院学报,2013(06):61-64.

[3]武宝珠,梁声灼,牛德雄.基于Struts2+Spring+Hibernate架构构建Web应用系统[J].计算机与现代化,2009(08):43-46.

spring框架范文第3篇

关键词Spring;Acegi;认证;授权

Spring框架和Acegi安全框架介绍

1、spring框架

Spring框架是由OpenSource开发的一个优秀的多层J2EE系统框架,它为企业级应用提供了一个非常轻量级的解决方案,大大地降低了应用开发的难度与复杂度,提高了开发的速度。

Spring框架的核心是IoC和AOP。IoC是一种设计模式,即IoC模式。IoC模式进一步降低了类之间的耦合度,并且改变了传统的对象的创建方法,实现了一种配置式的对象管理方式,Spring框架中由IoC容器负责配置性的对象的管理。IoC模式极大的提高了系统开发与维护的灵活性。

AOP是一种编程模式,它是从系统的横切面关注问题。传统的面向对象编程OOP主要从系统的垂直切面对问题进行关注,对于系统的横切面关注很少,或者说很难关注,这样当考虑到系统的安全性、日志、事务以及其他企业级服务时,OOP就无能为力了,只能在所有相关类中加入类似的系统服务级的代码。AOP为解决系统级服务问题提供了一种很好的方法。AOP将系统服务分解成方面看待,并为类提供一种声明式系统服务方式。Java类不需要知道日志服务的存在也不需要考虑相关的代码。所以,用AOP编写的应用程序是松耦合的,代码的复用性就提高了。

2、Acegi安全框架

借助于Spring框架,开发者能够快速构建结构良好的WEB应用,但现有的Spring框架本身没有提供安全相关的解决方案。同样来自于OpenSource社区的Acegi安全框架为实现基于Spring框架的WEB应用的安全控制提供了一个很好的解决方案。Acegi本身就是利用Spring提供的IoC和AOP机制实现的一个安全框架,它将安全作为J2EE平台中的系统级服务,以AOPAspect形式。所以借助于Acegi安全框架,开发者能够在Spring使能应用中采用声明式方式实现安全控制。

Acegi安全框架主要由安全管理对象、拦截器以及安全控制管理组件组成。安全管理对象是系统可以进行安全控制的实体,Acegi框架主要支持方法和URL请求两类安全管理对象;拦截器是Acegi中的重要部件,用来实现安全控制请求的拦截,针对不同的安全管理对象的安全控制请求使用不同的拦截器进行拦截;安全控制管理部件是实际实现各种安全控制的组件,对被拦截器拦截的请求进行安全管理与控制,主要组件包括实现用户身份认证的AuthenticationManager、实现用户授权的AccessDecisionManager以及实现角色转换的RunAsManager。安全管理对象、拦截器以及安全控制管理组件三者关系如图1所示。

Acegi安全框架在基于Spring框架的系统中的应用

1、分析系统安全性需求

首先,需要明确进行安全控制的对象,可为业务方法和URL资源。

其次,需要进一步明确,系统身份认证资料和资源授权信息的数据持久化形式。

2、Acegi安全系统数据库设计

在Acegi框架中支持多种安全信息的持久化方式,可以在配置文件中配置或存放在关系数据库。由于在实际应用中,需求是经常发生变化的。所以,在配置文件中配置是满足不了实际应用需求的。然而,Acegi本身对权限表的设计非常简单,users表{username,password,enabled}和authorities表{username,authority},这样简单的设计肯定无法适用复杂的权限需求。为了解决权限管理的复杂性,在这里引入了role(角色)的概念,使得用户和权限分离,一个用户拥有多个角色,一个角色拥有多个相应的权限,这样就更灵活地支持安全策略。

同时,为了更好地配合Acegi安全框架,还引入resource(资源)的概念,资源可分为URL和FUNCTION(方法)两种,一个权限可以对应多个资源。具体的数据库设计见图2。

图1安全管理对象,拦截器和安全管理组件交互图

图2Acegi安全控制系统数据库设计

3、认证管理器,授权管理器的配置

实现系统的安全控制,首先需要对系统的安全管理器和授权管理器进行配置,系统进行认证和授权需要获取安全信息,Acegi本身提供了对认证信息的获取机制,在实现认证与授权过程中,系统将主动根据配制信息和相应的信息解释安全信息的读取。图3给出了一个将用户安全信息存储在数据库中的认证管理器的配置示意图。

对应于图示的XML配置文件的代码如下:

/*配置数据库datasource和Acegi的jdbcDao*/

${jdbc.driverClassName}

${jdbc.url}

${jdbc.username}

${jdbc.password}

/*配置用户信息的加密算法*/

Class=”org.acegisecurity.providers.encoding.Md5passwordEncoder”/>

/*配置缓存有效时间*/

…//这里对缓存有效时间进行设置

/*配置daoAuthenticationProvider*/

class=”org.acegisecurity.providers.dao.DaoAuthenticationProvider”>

/*配置认证管理器*/

授权管理器的配置方法与认证管理器的配置基本类似,这里不再讨论。

4、安全请求拦截器的配置

以上配置完成后,就需要配置安全拦截器。不同的安全管理对象需要使用不同的安全拦截器。对于方法级的安全认证需要使用的拦截器为MethodSecurityInterceptor,而应用于URL资源的安全拦截器为FilterSecurityInterceptor。其中,MethodSecurityInterceptor拦截器是借助于SpringAop实现的,而FilterSecurityInterceptor拦截器是借助于ServletFilter实现的。本文以URL资源请求的安全拦截器为例说明配置情况。

由于URL资源请求安全拦截是借助于过滤器进行的。因此首先要配置AcegiServlet过滤器。过滤器类似于AOPAround装备,实现在web资源调用前后进行的一些操作6种过滤器,他们依次构成Servlet过滤器链,依次处理客户请求。需要注意的是过滤器配置的顺序是不能交换的,当不需要使用某个过滤器时,可直接将其删除和注释。过滤器在web.xml中配置形式为

AcegiHTTPRequestSecurityFilter

org.acegisecurity.util.FilterToBeanProxy

targetClass

Org.acegisecurity.intercept.web.SecurityEnforcementFilter

AcigiHTTPRequestSecurityFilter

/*在springapplicationContext.xml文件中的配置形式为

以上代码是SecurityEnforcementFilter的配置,该过滤器对用户是否有权访问web资源作出最后的决定。其它的过滤器的配置类同。

配置完过滤器后,需要对拦截器FilterSecurityInterceptor进行配置,

Class=””>

1class="org.xiaohongli.acegi.db.DBFilterObjectDefinitionSource">

objectDefinitionSource属性定义了那些受保护的URL资源,其中引用了一个本地对象filterObjectDefinitionSource。filterObjectDefinitionSource类从数据库中读取需要保护的URL安全信息,它扩展了PathBasedFilterInvocationDefinitionMap类。

同样,实现了另外一个methodObjectDefinitionSource类从数据库中读取需要保护的FUNCTION资源,它扩展了MethodDefinitionMap类。限于篇幅,在这里就不列出具体实现的源代码。

class="org.xiaohongli.acegi.db.DBMethodObjectDefinitionSource">

结束语

spring框架范文第4篇

关键词:Spring;DWR;EXT;三级联动

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

Spring提供了简单而有效的JDBC应用并且能和其他一些开源框架进行无缝结合,比如DWR。AJAX能实现页面局部刷新, DWR是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,它允许开发人员直接在浏览器端直接调用后台java代码。但是,DWR很难构建出漂亮的视图层页面。而EXT是一个用于客户端创建丰富多彩的web应用程序界面的Ajax框架,正好可以弥补DWR的缺陷。所以spring+dwr+ext三个框架用于web应用开发中,理论上是非常不错的。

1 Spring JDBC模板设计模式

Spring内置了一组数据访问框架,可以针对JDBC、Hibernate、MyBaties等常见数据访问技术提供简化操作,让我们把精力集中在核心的数据管理上面。常见的DAO码中,大部分都是管道代码(重复的),只要少数几句核心代码是每个方法不相同的。Spring利用“模板方法”设计模式,把管道代码预先定义好,然后通过接口,把方法的特定细节(变化部份)委托到外部交给程序员后期实现。“模板方法”设计模式的定义是:在方法里预先定义算法的骨架,将一些步骤延迟到其子类去实现。Spring JDBC模块为开发人员提供了一系列的抽象类,我们在写DAO类时只要继承于这些抽象类,并实行其中的相应方法即可。这样,大大简化了DAO的开发步骤,基本上一些DAO操作只需要一两句代码即可。 并且,Spring还封装了一些异常,因此,开发人员编码时也无需自己编写捕获各种特定的异常的代码,从而大大简化了DAO方法的编写。

2 DWR技术原理介绍

DWR(Direct Web Remoting)是位于服务器端的AJAX框架,用于处理客户端的请求并进行异步处理,将及时处理结果反馈于客户端浏览器中。它包含2个主要部分:一个运行在服务器端的Java Servlet,它处理请求并且向浏览器发回响应。另一个是运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页。DWR工作原理是通过动态把Java类生成为Javascript。它的代码就像Ajax魔法一样,感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。

3 EXT技术特点

Ext是一个前台页面开发框架,可以用来开发富客户端的AJAX应用,是纯Html/CSS+JS,拥有丰富的跨浏览器UI组件,采用灵活的JSON/XML数据源开发,减轻了服务端表示层的负荷,真正实现客户端的MVC应用,并且每一个组件都拥有漂亮的样式及布局,经过简单的调用与配置就可以实现不错的界面布局,。是开发页面不错的技术选择

4 Spring、DWR与EXT的整合及应用

4.1 三种框架的整合工作原理

Spring、DWR与EXT整合工作流程:Spring JdbcTemplate封装了JDBC的流程,包括了SQL的执行、查询结果的转换和异常的捕捉等等。在java程序中使用了JdbcTemplate的类中采用依赖注入jdbcTemplate,然后就直接调用JdbcTemplate中的数据库方法,如查询queryForList,更新update等。Spring JdbcTemplate负责应用系统数据库的操作。DWR负责将后台的java对象转化成前台页面的js 对象,让开发人员可以在客户端脚本语句中直接调用。开发人员在前台ext代码中调用后台java函数时,DWR 会将此转换成对应的请求发送到服务器端。当服务器处理完请求后,dwr还会将处理的结果返回给前台ext,EXT负责将后台传过来的数据呈现在漂亮的客户端界面上。

4.2 实例的应用

本实例是自己教学过程中用Spring+DWR+EXT框架开发web应用程序经常用到的的组合框的三级联动,通过实例来分析如何整合这三种框架,以其来提高开发效率和改善用户体验。

项目中要用到Spring,DWR,EXT框架,首先需要在项目中添加spring 、dwr 以及extjs所需的jar 包。并将包放到合适目录下。

1)在web.xml中配置Spring与DWR

在web应用中添加Spring支持,需要在web.xml中配置spring启动的监听器:(代码略)。

在Spring框架之下,每个Java对象将会以bean的方式存在。

2)编写具体的类ResourceGISDistributeDao,实现数据库的业务处理。列出部分代码说明:

/*查询营业部数据*/

public List queryyingyebu(String cityid) {

try { return this.jdbcTemplate.queryForList(this.yingyebuString, new Object[]{cityid});} catch (Exception ex) {

ex.printStackTrace();

return null;}

}

3)编写spring配置文件

在spring配置文件中,我们主要是用来配置数据源和操作数据库的dao,以便在dwr配置文件中进行引入访问。

SELECT DISTINCT T.TOWN_ID,T.TOWN_DESC FROM APP.RS_CHL_NET_CELL_BASIC T WHERE T.CITY_ID=?

4)编写dwr.xml配置文件

Dwr配置文件与web.xml在同一目录下,配置将要被调用的java类。部分代码如下:

5)创建视图层

最后,创建视图层。视图层项目中采用jsp技术。在jsp页面中要引用dwr的engine.js和util.js,还要引用dwr自动生成的js,如dwr/interface/ResourceGISDistributeDao.js,注意js名字要和dwr.xml配置的一样。这样就可以在jsp页面中通过脚本代码来调用在服务器端dao层ResourceGISDistributeDao代码,函数比在java代码中多了个参数function(data),用来callback返回的数据,如下:ResourceGISDistributeDao. queryyingyebu (function(data){

DwrReturnData = data; });

最终组合下拉框三级联动效果图图1。实践发现,采用spring+dwr+ext三个框架相结合的异步读取的方式,能使多级联动的数据不需要一次性地从数据库中读取出来,而会在页面初始化的时候只读出第一级组合框(市级)的数据,再根据用户的选择读出相应的下一级(营业部)组合框数据,极大地提高了用户体验。且EXT的组合框控件有缓存机制,再次点击时会去缓存中读取数据,提升了响应速度。对于开发人员而言,JavaScript代码量及复杂度大大降低,极大地减轻了编程负担。

5 结束语

DWR框架响应迅速、交互性强 ,EXT能够创建丰富多彩的web应用程序界面, Spring框架将DWR与EXT框架有机地整合起来,使JAVA应用更加灵活,因此基于Spring+DWR+EXT框架的能很好地进行web应用开发。

参考文献:

[1] 林信良. Spring3.0技术手册[M]. 北京: 电子工业业出版社, 2012.

[2] 董鑫. 基于AJAX的动态Web开发技术探讨[D]. 郑州: 河南大学, 2010.

[3] 李健, 郭宇明, 石桂名. 基于DWR的Ajax技术研究与实现[J]. 现代计算机:专业版, 2013(7): 132-133.

[4] 王霓虹, 金兴. Ajax技术及其DWR框架实现[J]. 自动化技术与应用, 2012, 26(12): 92-94.

[5] 张栗, 张凤元, 危胜军. 基于DWR框架的Web应用的设计与实现[J]. 计算机技术与发展, 2012, 18(8): 84-87.

spring框架范文第5篇

【关键词】struts2;hibernate;spring

中图分类号:TP39 文献标识码:A 文章编号:1006-0278(2013)07-192-01

一、struts2框架

(一)struts2框架的概述

Struts2也是以控制器为核心,它包括核心控制器(FilterDispatcher)和业务控制器及用户实现的的业务逻辑组件。

Struts2框架的大致处理流程如下:

1.浏览器发送请求,例如请求/mypage.action、/reports/ myreport.pdf等。2.核心控制器FilterDispatcher根据请求决定调用合适的Action。3.Struts 2的拦截器链自动对请求应用通用功能,例如workflow、validation或文件上传等功能。4.回调Action的execute方法,该execute方法先获取用户请求参数,然后执行某种数据库操作,既可以将数据保存到数据库,也可以从数据库中检索信息。实际上,因为Action只是一个控制器,它会调用业务逻辑组件来处理用户的请求。5.Action的execute方法处理结果信息将被输出到浏览器中,可以是HTML页面、图像,也可以是PDF文档或者其他文档。此时支持的视图技术非常多,既支持JSP,也支持Velocity、FreeMarker等模板技术

(二)struts2框架的体系结构

Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。

Struts2框架的处理流程如下:

1.加载类(FilterDispatcher)2.读取配置(struts配置文件中的Action)3.派发请求(客户端发送请求)4.调用Action(FilterDispatcher从struts配置文件中读取与之相对应的Action)5.启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)6.处理业务(回调Action的execute()方法)7.返回响应(通过execute方法将信息返回到FilterDispatcher)8.查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面)9.响应用户(jsp--->客户浏览器端显示)10.struts2标签库(相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大)。

二、Hibernate框架

(一)Hibernate框架的概述

Hibernate是一个非常优秀的ORM(Object Relational Mapping对象关系映射)框架。

对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作。

hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

(二)Hibernate框架的体系结构

Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。

三、Spring框架

(一)Spring框架的概述

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。

(二)Spring框架的体系结构

Spring框架的7个模块:

spring框架范文第6篇

关键词:实验室信息管理系统;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.

[3] Holmes J.Struts程序员查询辞典!Programmer's reference[M].孙燕,译.北京:中国铁道出版社,2005.

spring框架范文第7篇

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

作者简介:平(1972-),男,山东文登人,新疆军区某部高级工程师,大学本科,研究方向为基于JEE的企业应用开发和NOSQL数据库系统。

spring框架范文第8篇

关键词:J2EE;Struts;Spring;Hibernate;整合架构

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)24-5911-03

Study on Method of Integration of the J2EE Framework Based on Struts, Spring and Hibernate

WANG Mei-qin

(Zhejiang Tongji Vocational College Of Science and Technology, Hangzhou 311231, China)

Abstract: This paper introduced the MVC design pattern and three kinds of open-source framework technologies (Struts, Spring and Hibernate),analyzed the theory and characteristics.The paper discussed three integration technologies of Struts and Spring framework,compared their advantages and disadvantages,improved the third method and gived more detailed code; To the integration of Spring and Hibernate framework,the paper gived its implementation and central code.The purpose of the framework integration was loose coupling between components and highly improve the software developing efficiency.

Key words: J2EE; Struts; Spring; Hibernate; Integrated Architecture

J2EE技术是目前B/S架构应用中最为成熟的技术之一,被几乎所有的JavaWeb开发人员所熟悉,在这个领域中人们经常会谈论三个非常流行的轻量级开源框架Struts,Spring,Hibernate。目前J2EE企业级开发技术较成熟,开发模式也较繁多,较流行开发模式MVC更是普遍,现在使用最多的可能就是SSH这三种框架。而软件应用框架不是一个可用的应用系统,它是一个半成品,由一些相互协作的类和相关接口组成,应用开发人员可在该软件应用框架基础上进行二次开发,以实现特定功能的应用系统[1]。在多层Web体系结构设计中,普遍存在着开发产品性能差、维护工作量大及应变能力不足等缺点。因此,在开发Web应用系统的过程中,提高开发效率,合理选取技术进行分层设计、框架搭建,充分发挥应用系统的灵活性、安全性和实用性尢为重要。

笔者在本文中主要研究讨论SSH这三种开源框架的糅合使用到底是怎样实现的方法和策略,分析了Struts、Spring和Hibernate框架的工作原理和技术优势,研究了三种框架的具体整合方案,设计了一个通用、高效、易于扩展的WEB应用架构。在该架构中,表示层采用Struts,业务层采用Spring,持久层采用Hibernate,各层功能独立,层次之间松散耦合,为实现高效、灵活的WEB应用提供一种新的思路及方法。

1 J2EE简介

J2EE是英文“Java 2 Platform,Enterprise Edition”的缩写。Java2平台企业版是Sun公司定义的一套全然不同于传统应用开发的技术架构。从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于企业级应用的J2EE。图1是一个比较简单的J2EE体系架构图。

2 Struts、Spring和Hibernate框架分析

2.1 MVC设计模式

MVC是Model-View-Controller的缩写,中文翻译为"模式-视图-控制器",MVC源于传统的面向对象语言SmallTalk-80,是第一个分开表示逻辑和业务逻辑的设计模式。MVC引入视图(表示层)、模型(数据)和协调两者的控制器,使之相对独立,从而提高灵活性和复用性。模型、视图、控制器三者之间的关系和各自的主要功能,如图2所示。

2.2 基于MVC设计模式的Struts框架技术

Struts是一个在JSP Model2基础上实现的MVC框架,主要分为模型(Model)、视图(Viewer)和控制器(Controller)三部分,其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提高系统的可维护性、可扩展性和可重用性[2]。Struts框架的体系结构如图3所示[3]。

Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml。Struts-config.xml集中了所有页面的导航定义。对于大型的Web项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或升级都是大有裨益的。掌握Struts-config.xml是掌握Struts的关键所在。

2.3 基于IoC和AOP的Spring框架技术

Spring是一个开源框架,由Rod Johnson创建,目的是解决企业应用开发的复杂性,功能是使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。Spring 是一个轻型的控制反转(IoC)和面向切面(AOP)的容器框架,使用一个外部 XML 配置文件可以方便地利用它把对象连接在一起,每个对象都可以利用JavaBean 属性进行一个依赖对象的引用,而用户自己的任务就只需要在一个 XML 配置文件中设置一下连接属性[4]。

1) 轻量级

轻量是指从大小与开销两方面而言Spring都是轻量的,完整的Spring框架可以在一个大小只有1MB多的JAR文件中,并且Spring所需的处理开销也是微不足道的。

2) IoC和Spring

IoC是“Inversion of Control”的缩写,意思是控制反转,又称为“依赖注入”。Spring通过一种称为控制反转(IoC)的技术促进了松耦合,当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

3) AOP和Spring

AOP是OOP的延续,是“Aspect Oriented Programming”的缩写,意思是面向切面编程,是一种可以通过预编译方式和运行期动态实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。这种技术允许业务逻辑与系统服务进行内聚性的开发,使得应用对象只做它们应该做的,完成业务逻辑,仅此而已。

4) Hibernate框架技术

Hibernate是一个开放源代码的对象关系映射(Object Relation Mapping,简称ORM)框架,它提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制,Hibernate负责持久化层,完成数据库的crud操作,为持久层提供OR/Mapping,从而大大减少数据访问的复杂度,把对数据库的直接操作,转换为对持久对象的操作。

3 Struts、Spring和Hibernate框架的整合方法

Web应用系统框架层次分为四层:表现层、持久层、业务层、域对象层。每个框架分别负责一个层次的实现,表现层使用Struts,业务层使用Spring,持久层使用Hibernate。每层在应用程序中都有明确的责任,各层以一种松耦合方式彼此作用但又彼此独立,各层不用管低层的技术细节。集成框架开发出来的Web系统无论在整体结构上还是在局部的复杂业务模型中都有了更低的耦合性,它们的灵活性与可维护性也得到了提高,从而消除了单独使用这三种框架开发系统的不足。

3.1 装载应用程序环境

无论使用哪种方法,都需要使用Spring的ContextLoaderPlugin为Struts的ActionServlet 装载Spring应用程序环境。就像添加任何其他插件一样,简单地在struts-config.xml文件添加该插件,代码如下:

“org.springframework.web.struts.ContextLoaderPlugin”>

3.2 Struts与Spring框架的整合

目前Struts 与Spring框架常见的整合技术有下列三种:

1) 使用Spring的ActionSupport类整合Struts;

2) 使用Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor;

3) 将Struts Action管理委托给Spring 框架。

下面对前两种方法进行简单的介绍,并给出第三种方法具体实现的步骤。

1) 使用Spring的ActionSupport类整合Struts

手动创建一个 Spring 环境是一种整合 Struts 和 Spring 的最直观的方式。需要注意的地方是:①通过从 Spring 的 ActionSupport 类而不是 Struts 的 Action 类进行扩展,从而创建了一个新的 Action;②使用org.springframework.web.struts.ActionSupport 类提供的getWebApplicationContext() 方法获得一个 ApplicationContext。这种技术很简单容易,但替换麻烦需要重写代码。

2) 使用Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor

这种方法分三步进行:第一步是在struts-config.xml文件中加入:;第二步是在 Spring 上下文配置文件中用名称属性注册一个bean,以匹配 struts-config 动作映射名称;第三步是通过创建了一个JavaBean属性创建Struts动作,DelegatingRequestProcessor自动地配置这种属性。DelegatingRequestProcessor方法的确比第一种方法好,但仍然存在一些问题,如果使用一个不同的RequestProcessor,则需要手动整合Spring的DelegatingRequestProcessor,添加的代码会造成维护的麻烦并且将来会降低应用程序的灵活性。

3) 将 Struts Action管理委托给Spring框架

这种方法通过Spring提供的两个和Struts相关类来实现:org.springframework.web.struts. DelegatingActionProxy,org.springframework.web.struts.ContextLoaderPlugIn。ContextLoaderPlugIn实现Struts的PlugIn接口,需要在struts-config.xml中作相应的配置,然后在applicationContext.xml中配置相应的节点,委托以后,修改Struts-config.xml中的action属性,使action的type值不指向具体的实现类,统一改为类type="org.springframework.web.struts.DelegatingActionProxy",在applicationContext.xml中的bean name值设定与Struts-config.xml中action path值一样,以使类能够根据传入的path在springContext环境中找到相应的bean,并将实例返回给Struts。这在三种方法中是最好的,但同时也存在一些问题,考虑做些改进。可以对RequestProcessor类的ProcessActionCreate()方法进行一些扩展,使得ProcessActionCreate()方法把ActionServlet实例纳入Spring的容器管理。主要代码摘录如下:

Protected Action processActionCreate(HttpServletRequest rq,HttpServletResponse rs,ActionMapping mp) throws IOException{

try{//查找相关Bean

String bName=DelegatingActionUtils.determineActionBeanName(mp);

//返回Bean的实例

//监控Servlet当前状态和对Servlet进行操作。

Return(Action);this.webApplicationContext.getBean(beanName,Action.class);}

Catch(NoSuchBeanDefinitionException ex){

Return super.processActionCreate(rq,rs,mp);}

}

最后,在Struts配置文件struts-config.xml中加上声明,通知Struts执行时调用RequestProcessor的扩展类DelegatingStruts。使得Struts加载Action时,DelegatingStruts会根据提供的参数,找到对应的Bean,实现Spring提供的所有服务,并把实例返回给Struts。

3.3 Spring和Hibernate框架整合的实现方法

Spring整合Hibernate主要是对Hibernate的Session进行管理,包含Session的创建、提交、关闭的整个生命周期。

1) 配置SessionFactory,让Spring来创建Session.

在Hibernate的配置文件或者在Spring的配置文件中均可以进行SessionFactory的配置,选择使用Spring来对Hibernate进行管理,这样最后生成的工程里就不包含hibernate.cfg.xml了,好处是在一个地方就可以对Hibernate进行管理了。

2) 配置事务管理器

增加如下代码:

?

3) 对事务管理器进行事务设置

增加如下代码:

??

最后可以把事务应用到具体的类中就完成了整合过程。

4 结束语

Struts+Spring+Hibernate框架是目前众多软件企业主流的应用技术,Struts作为一种MVC的实现,很好地实现了显示逻辑与业务逻辑的分离。Spring使用IoC容器作为构建架构的基础,通过IoC实现组件的装配,降低了各组件之间的依赖,实现了各组件的松耦合,使得各组件可以单独进行开发和测试,这些特性都使得整个应用系统具有良好的可扩展性和可维护性。Hibernate作为一种持久层框架与Spring天然的搭配,把它们整合在一起,使开发人员可以完全以面向对象的方式进行系统分析、系统设计并可以使用面向对象的操作方式操作数据库记录。更为重要的是,应用系统在不同数据库间移植非常方便,只需在配置文件中更改即可。总之三个框架的整合能够充分发挥者在各自领域的优势,通过IoC装配各组件,通过AOP进行事务管理,能够轻松实现一个开发简单、结构良好、功能强大、层次清晰的Web应用系统。

参考文献:

[1] GAMMA E,HELM R,JOHNSON R,et al.Design patterns:Elements of reusable object-oriented software[M].Addison Wesley,1994.

[2] Struts,MVC的一种开放源码实现[DB/OL]./developerworks/cn/java/j-struts/

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

[4] Eric Jendrock,Jennifer Ball,Debbie Carson,et al.The Java EE 5 Tutorial.[EB/OL] /javaee/5/docs/tutorical/doc/.

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

spring框架范文第9篇

关键词: 科研管理;三层架构;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.

[2] 李刚.Struts 2权威指南[M].北京:电子工业出版社,2007.

spring框架范文第10篇

关键词:实习实训;管理系统;网络化教学

实习实训管理平台将实习实训环节中的各种资源进行有效整合,为学生、教师、管理员、校外企业提供便捷的线上服务。打造专业的实习实训信息化平台,可以实现网上信息(实习实训新闻动态、规章制度、战略合作企业),实习就业推荐与反馈,实习实训过程管理与评价,毕业设计流程跟踪与信息管理等功能,为平台用户提供线上高质量、多功能的服务。

1 实习实训管理平台的作用及功能

1.1 突破传统管理模式

实习实训的过程管理是高校实践教学管理的重要环节,需要对整个流程进行有效跟踪,收集大量数据信息,并对学生实习情况、带队教师工作、企业实习生管理进行有效评估。原有的线下管理模式存在灰度区域,数据统计不够及时高效,实践教务管理存在数据信息缺失,整个实践评价体系不透明,企业和高校之间的没有稳定的数据信息通道。

1.2 提升高校管理服务意识

解决学生、教师、企业、实践教学管理的难题,从根本上是提升实践教学的服务能力,建立学生与教师、企业与院校的双向信息通道,落实学生实习管理、教师实习带队工作评估、教务管理数据收集、企业实习就业信息处理等服务。用移动信息化服务来改善管理流程,提升实践教学管理水平。

1.3 丰富高校与企业实习管理内容

借助实习实训管理平台可以将企业(省内、省外)实训实习信息实时推送给学生、教师、管理人员。同时,解决就业、实习实训信息不对称的难题。平台提供企业数据入口,可以实习远程信息、实习过程管理、实习管理报告提交、优秀实习生统计、企业青苗快速入职等功能。同时,也提供后台供高校管理人员使用,学生实习日志统计,日常工作情况分析,企业导师评估记录,平台统计数据报表。

2 平台运营思路与建设规划

随着在校生人数不断增加,实习管理工作压力也逐渐增大,尤其是实践教学在技术应用型高校重要性也加大比重,管理好实习实训过程尤为重要,为教师、学生、企业提供稳定可靠的实习实训管理平台。考虑到投入成本和开发周期,建议使用分批上线不同功能,前期集中火力打造2~3个核心功能,快速解决师生实习实训问题。整个平台以目前流行的H5网站为核心,兼容手机移动端和PC桌面端,建设成统一的数据库和后台管理系统。

如图1所示,Spring 框架由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。通过Spring提供的IoC容器,我可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

实习实训管理平台采用双机组网的方式,部署应用服务器和数据库服务器,提供给用户(学生、老师、企业导师、管理员等),后台数据库管理员通过VPN或者局域网进行数据管理以及维护。学生、教师、企业导师、校级或院级管理员可以通过Internet对数据库进行访问,终端设备可以是手机或电脑,客户端系统为用户提供多样的交互方式。双机组网可以解决系统整体宕机的问题,降低风险,同时解决应用数据服务并发问题以及数据库的冗余备份。用户(学生、教师、管理员、企业导师)通过PC端网站、微信及HTML5手机端应用,以及后续扩展的手机移动端,对于前端用户的数据接入层中间件进行有效的访问,从而获取数据库中的数据,后端中间件提供对数据库的服务,数据来源于原有的教务系统,人力资源系统以及第三方的数据服务系统、教育政府公共服务系统等。整个平台分为5层,分别是用户接入、应用层、数据支撑、数据服务、平台基础等。

用户接入层:包括了平台所使用对象的接入及访问,各类不同的角色可以通过互联网、手机、平板、智能化设备访问到应用系统。

应用层:包括实习实训门户、后台管理系统、H5微网站等。

数据支撑层:包括用户统一管理、数据消息统一管理、业务流程统一管理、数据分析汇总管理等。

数据服务层:包括了学生、教师信息、实习实训信息、毕业设计的信息以及优质企业的信息等。

平台基础:包括建设信息平台所需要的网络、设备、中间件资源等。本项目采用B/S工作模式,B/S结构的基本原则是将应用任务分解成多个子任务,可以由多台或单台服务器集中分工完成。

3 结语

上一篇:框架结构范文 下一篇:mvc框架范文