论文部分内容阅读
[摘要]简单介绍J2EE,详述MVC模式中Model,View以及Controller之间的关系。对目前Web应用开发中的两个流行框架Struts和Spring进行了分析。针对这两个框架的优点和不足,提出一个将两种框架分层应用、整合形成的新框架。新的框架充分利用Struts、Spring框架技术的各层的优点,弥补之前两个框架中的不足。
[关键词]J2EE MVC模式 Struts 框架 Spring 框架 整合
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1110051-01
一、J2EE简介
J2EE(Java 2 Enterprise Edition)是建立在Java 2平台上的企业级应用的解决方案。J2EE技术的基础便是Java 2平台,不但有J2SE平台的所有功能,同时还提供了对EJB,Servlet,JSP,XML等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。事实上,J2EE已经成为企业级开发的工业标准和首选平台。J2EE并非一个产品,而是一系列的标准。
二、MVC设计模式
MVC英文即(Model-View-Controller),即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。模型(Model)就是业务流程/状态的处理以及业务规则的制定。控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。
三、StrutsJ2EE典型的MVC框架
(一)Struts框架的分析
Client browser(客户浏览器)表示来自客户浏览器的每个HTTP请求创建一个事件。Web容器将用一个HTTP响应做出响应。Controller(控制器)接收来自浏览器的请求,并决定将这个请求发往何处。就Struts而言,控制器是以servlet实现的一个命令设计模式。struts-config.xml文件配置控制器。业务逻辑更新模型的状态,并帮助控制应用程序的流程。就Struts而言,这是通过作为实际业务逻辑“瘦”包装的Action类完成的。Model(模型)表示应用程序的状态。业务对象更新应用程序的状态。ActionForm bean在会话级或请求级表示模型的状态,而不是在持久级。JSP文件使用JSP标记读取来自ActionForm bean的信息。View(视图)就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息,只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。Struts框架为Model部分提供了Action和ActionForm对象,所有的Action处理器对象都是Action类派生的子类。Struts中的Controller功能是由ActionServlet和ActionMapping对象构成。
(二)Struts框架的优、缺点
Struts 主要有以下几个优点:(1)JSP 标记机制的使用,标记特性从 JSP 文件获得可重用代码和抽象 Java 代码。这个特性能很好地集成到基于 JSP 的开发工具中,这些工具允许用标记编写代码。(2)标记库。(3)管理问题空间,分治是解决问题并使问题可管理的极好方法。当然,这是一把双刃剑。问题越来越复杂,并且需要越来越多的管理。
Struts的缺点:(1)有限的适用范围,Struts 是一种基于 Web 的 MVC 解决方案,所以必须用 HTML、JSP 文件和 servlet 来实现它。(2)复杂性,在将问题分为几个部分的同时也引入了复杂性。毫无疑问,要理解 Struts 必须接受一定的培训。随着变化的不断加入,这有时会令人很沮丧。
四、SpringJ2EE的一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
(一)Spring框架的简单介绍
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。从大小与开销两方面而言Spring都是轻量的。Spring通过一种称作控制反转(IoC)的技术促进了松耦合。同时,Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。
(二)Spring框架的分析
Spring框架是一个分层架构,由七个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
(三)Spring框架的优、缺点
Spring框架有以下几个优点,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类,代码的污染极低。Spring框架独立于各种应用服务器,基于Spring框架的应用,可以真正实现良好的移植性能。Spring的DI机制降低了业务对象替换的复杂性。Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分和全部。
Spring作为一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架已经非常优秀,如果非要谈论其不足,Spring框架的开放性可能会给它带来一些不好的因素,Spring奉行的原则就是:不要重新发明轮子,如果有好的实现,就集成进来,而不是自己重新去做。
五、基于MVC模式的Struts与Spring框架的整合
Struts框架有成熟的标签库,Web层主要由Struts框架实现;
而Spring框架同Struts框架能够完美的结合,并且在事务管理和依赖注入方面有着独到之处,因此主要用于业务逻辑层。这样实现Struts与Spring的集成,主要使得Spring提供的IoC与AOP能为Struts使用。我们的整合方法是利用Struts架构作为系统的整体基础架构,它负责了MVC的分离,而在Struts架构的业务层用Spring来支持。将Spring引入Struts框架中的关键是:Spring是轻量级容器,在业务层中使用可以尽可能的减少消耗。同时它可以在Struts中得到应用上下文。在Struts中Action是整个流程的核心部分,所以只要我们能够在Struts的Action中得到相应的Spring应用上下文,就可以通过它来得到Spring框架丰富IoC和AOP管理功能。
将Spring集成到Struts中后,我们会得到一个新的Web应用框架,其各个部分组成如图1所示.
Struts框架的优势在于简单易用,提供了丰富的Taglib,使得对视图层的实现节省了大量的开发时间,并且具有良好的页面导航功能,开发者可以通过struts-config.xml把握整个系统各部分之间的联系,这对于后期维护有着极大的帮助,尤其是当开发者换人接手该项目时,这种优势体现得更加明显.而Spring的目标是提供一种贯穿始终的解决方案,将各种专用框架整合成一个连贯的整体构架。在这种意义上说Spring框架就像一个粘合剂,将各个领域出色的解决方案粘合到一起,构成一个新的架构,更好地为应用服务。
通过整合,我们可以在Struts中使用Spring的应用上下文,使Struts得到了Spring IoC和AOP所带来的优势。并且对熟悉Struts的开发人员来说,其视图层与控制层的开发并没有因Spring的加入而产生很大的变动。当我们将Spring集成到Struts中后,就可以使用Spring中的IoC及AOP对系统的业务层进行有效的管理,从而使业务层的实现得到改善。
六、结束语
Struts和Spring采用低耦合的方式整合在一起。应用起来更灵活。两种框架是单独运行的,对于表示层来说,有的地方可能不必用到中间层的对象。Struts和Spring的整合方法很多,但最终目的都是希望所产生的新的架构可以很好利用上两种框架的优点,并且能很好的适合所要开发的项目本身。
参考文献:
[1]Rod Johnson, Juergen Hoeller, Alef Arendsen etc. Java/J2EE Application Framework Reference Document v2.0, 2006.
[2]孙卫琴. 精通Struts:基于MVC的Java Web设计与开发[M]. 北京: 电子工业出版社,2004.
[3]郭锋. Spring从入门到精通. 北京: 清华大学出版社2006,1.
[4]IBM developerWorks 中国. Http://www.ibm.com/developerworks/cn
/java/j-struts/.
[5]IBM developerWorks 中国. Http://www.ibm.com/developerworks/cn
/java/wa-spring1/.
[6]中科永联. Http://www.itisedu.com/phrase/200604231324325.html.
作者简介:
任仁,男,新疆,同济大学软件学院软件工程专业06级硕士,主要研究方向是企业计算。
[关键词]J2EE MVC模式 Struts 框架 Spring 框架 整合
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1110051-01
一、J2EE简介
J2EE(Java 2 Enterprise Edition)是建立在Java 2平台上的企业级应用的解决方案。J2EE技术的基础便是Java 2平台,不但有J2SE平台的所有功能,同时还提供了对EJB,Servlet,JSP,XML等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。事实上,J2EE已经成为企业级开发的工业标准和首选平台。J2EE并非一个产品,而是一系列的标准。
二、MVC设计模式
MVC英文即(Model-View-Controller),即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。模型(Model)就是业务流程/状态的处理以及业务规则的制定。控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。
三、StrutsJ2EE典型的MVC框架
(一)Struts框架的分析
Client browser(客户浏览器)表示来自客户浏览器的每个HTTP请求创建一个事件。Web容器将用一个HTTP响应做出响应。Controller(控制器)接收来自浏览器的请求,并决定将这个请求发往何处。就Struts而言,控制器是以servlet实现的一个命令设计模式。struts-config.xml文件配置控制器。业务逻辑更新模型的状态,并帮助控制应用程序的流程。就Struts而言,这是通过作为实际业务逻辑“瘦”包装的Action类完成的。Model(模型)表示应用程序的状态。业务对象更新应用程序的状态。ActionForm bean在会话级或请求级表示模型的状态,而不是在持久级。JSP文件使用JSP标记读取来自ActionForm bean的信息。View(视图)就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息,只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。Struts框架为Model部分提供了Action和ActionForm对象,所有的Action处理器对象都是Action类派生的子类。Struts中的Controller功能是由ActionServlet和ActionMapping对象构成。
(二)Struts框架的优、缺点
Struts 主要有以下几个优点:(1)JSP 标记机制的使用,标记特性从 JSP 文件获得可重用代码和抽象 Java 代码。这个特性能很好地集成到基于 JSP 的开发工具中,这些工具允许用标记编写代码。(2)标记库。(3)管理问题空间,分治是解决问题并使问题可管理的极好方法。当然,这是一把双刃剑。问题越来越复杂,并且需要越来越多的管理。
Struts的缺点:(1)有限的适用范围,Struts 是一种基于 Web 的 MVC 解决方案,所以必须用 HTML、JSP 文件和 servlet 来实现它。(2)复杂性,在将问题分为几个部分的同时也引入了复杂性。毫无疑问,要理解 Struts 必须接受一定的培训。随着变化的不断加入,这有时会令人很沮丧。
四、SpringJ2EE的一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
(一)Spring框架的简单介绍
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。从大小与开销两方面而言Spring都是轻量的。Spring通过一种称作控制反转(IoC)的技术促进了松耦合。同时,Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。
(二)Spring框架的分析
Spring框架是一个分层架构,由七个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式,组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
(三)Spring框架的优、缺点
Spring框架有以下几个优点,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类,代码的污染极低。Spring框架独立于各种应用服务器,基于Spring框架的应用,可以真正实现良好的移植性能。Spring的DI机制降低了业务对象替换的复杂性。Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分和全部。
Spring作为一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架已经非常优秀,如果非要谈论其不足,Spring框架的开放性可能会给它带来一些不好的因素,Spring奉行的原则就是:不要重新发明轮子,如果有好的实现,就集成进来,而不是自己重新去做。
五、基于MVC模式的Struts与Spring框架的整合
Struts框架有成熟的标签库,Web层主要由Struts框架实现;
而Spring框架同Struts框架能够完美的结合,并且在事务管理和依赖注入方面有着独到之处,因此主要用于业务逻辑层。这样实现Struts与Spring的集成,主要使得Spring提供的IoC与AOP能为Struts使用。我们的整合方法是利用Struts架构作为系统的整体基础架构,它负责了MVC的分离,而在Struts架构的业务层用Spring来支持。将Spring引入Struts框架中的关键是:Spring是轻量级容器,在业务层中使用可以尽可能的减少消耗。同时它可以在Struts中得到应用上下文。在Struts中Action是整个流程的核心部分,所以只要我们能够在Struts的Action中得到相应的Spring应用上下文,就可以通过它来得到Spring框架丰富IoC和AOP管理功能。
将Spring集成到Struts中后,我们会得到一个新的Web应用框架,其各个部分组成如图1所示.
Struts框架的优势在于简单易用,提供了丰富的Taglib,使得对视图层的实现节省了大量的开发时间,并且具有良好的页面导航功能,开发者可以通过struts-config.xml把握整个系统各部分之间的联系,这对于后期维护有着极大的帮助,尤其是当开发者换人接手该项目时,这种优势体现得更加明显.而Spring的目标是提供一种贯穿始终的解决方案,将各种专用框架整合成一个连贯的整体构架。在这种意义上说Spring框架就像一个粘合剂,将各个领域出色的解决方案粘合到一起,构成一个新的架构,更好地为应用服务。
通过整合,我们可以在Struts中使用Spring的应用上下文,使Struts得到了Spring IoC和AOP所带来的优势。并且对熟悉Struts的开发人员来说,其视图层与控制层的开发并没有因Spring的加入而产生很大的变动。当我们将Spring集成到Struts中后,就可以使用Spring中的IoC及AOP对系统的业务层进行有效的管理,从而使业务层的实现得到改善。
六、结束语
Struts和Spring采用低耦合的方式整合在一起。应用起来更灵活。两种框架是单独运行的,对于表示层来说,有的地方可能不必用到中间层的对象。Struts和Spring的整合方法很多,但最终目的都是希望所产生的新的架构可以很好利用上两种框架的优点,并且能很好的适合所要开发的项目本身。
参考文献:
[1]Rod Johnson, Juergen Hoeller, Alef Arendsen etc. Java/J2EE Application Framework Reference Document v2.0, 2006.
[2]孙卫琴. 精通Struts:基于MVC的Java Web设计与开发[M]. 北京: 电子工业出版社,2004.
[3]郭锋. Spring从入门到精通. 北京: 清华大学出版社2006,1.
[4]IBM developerWorks 中国. Http://www.ibm.com/developerworks/cn
/java/j-struts/.
[5]IBM developerWorks 中国. Http://www.ibm.com/developerworks/cn
/java/wa-spring1/.
[6]中科永联. Http://www.itisedu.com/phrase/200604231324325.html.
作者简介:
任仁,男,新疆,同济大学软件学院软件工程专业06级硕士,主要研究方向是企业计算。