菜单
  

    2.4    控制层
    控制层的主要功能是实现视图层与模型层的匹配。它接收客户端发出的请求,并调用相应的模型组件进行处理,最后采用不同的视图显示处理结果。在这个过程中,对用户请求的分发和处理是控制层的核心。
    通过第二章的介绍可知,Struts框架拥有一个结构清晰、功能全面、配置灵活方便的控制层结构。它通过ActionServlet作为中心控制器,依据配置文件对客户端请求进行分发和处理,从而实现视图层和控制层的良好衔接。通过其配置文件可以轻松地把握整个程序的逻辑结构。
    但是,Struts中商业逻辑处理模块与封装了具体业务操作的模型层JavaBean之间存在的相互依赖关系,需要在类内部通过硬编码表示,这造成了模块间的紧耦合,不利于系统功能的复用和调试。而Spring框架具有的IoC容器,在对系统功能模块进行集中管理的同时,可以轻松实现模块间的解耦,其采用的依赖注入技术也是当前流行的软件设计模式,模块间的松散耦合也有利于系统的并行开发和单元测试。此外,Spring内置的AOP框架可以方便地为各功能模块提供声明式的事务管理功能,其模块化结构使它可以与其它框架很好的集成。
    因此,本框架在控制层的设计中,采用Struts+Spring实现。框架的核心控制结构由Struts实现,利用它的请求分发处理机制实现视图层与模型层的匹配。同时,把Struts中的功能模块与模型层的处理模块委托给Spring的IoC容器进行管理,在保持系统功能结构清晰的同时,实现了模块间的解耦。
    由控制层的设计可知,其核心处理结构依然采用Struts框架实现,但把逻辑功能模块及其依赖关系交由Spring的IoC容器进行管理。经过研究与分析,Struts框架与Spring框架的集成方式有如下三种:
    (1)第一种集成方式:将模型层中的JavaBean交由Spring的IoC容器管理,在Struts的Action中,使用Spring的上下文对象WebApplicationContext访问容器中的JavaBean对象。这种方式是一种松耦合集成方案,其保留了Struts的控制结构,Action由Struts自行管理,Spring只是管理模型层中的JavaBean,并不影响系统的控制结构。采用这种集成方式,只需将Action中调用JavaBean执行业务逻辑的代码,改成调用Spring中的Bean执行业务逻辑代码即可。
    (2)第二种集成方式:将模型层中的JavaBean交由Spring的IoC容器管理,Struts中的Action类继承Spring中的ActionSupport类。这种方式实际上是对第一种方式的改进,Spring的ActionSupport类提供了getWebApplicationContext()等方法,通过该方法,用户在编写Action时可以方便得取得Spring的上下文对象WebApplicationContext,从而通过它引用Spring中的Bean对象,这实际上是对第一种方式的简单封装。
    (3)第三种集成方式:把Struts的Action和模型层中的JavaBean都委托给Spring的IoC容器管理。这种方式是一种紧耦合集成方案,它将Struts中Action的实现也放到了Spring的IoC容器中,从而方便利用Spring的IoC特性对Action、JavaBean及其依赖关系进行管理。
    由于本系统使用第一种集成方式,见图下:图2-4 MVC结构示意图
    该方式的配置方法如下:
    在系统配置文件web.xml中声明一个监听器(Listener)或Servlet,其作用是在系统启动时读取Spring的Bean配置文件,初始化IoC容器。使用监听器名称为ContextLoaderListener。
    监听器(Listener)是Servlet2.3版本以后才引入的功能,若使用的是Servlet2.2及以前版本的容器,则应该使用一个名为ContextLoaderServlet的Servlet完成相同的功能。
    针对以上配置的Listener或Servlet还需要声明一个contextConfigLocation的参数元素,用以指定要加载的Spring配置文件的路径及名称,默认加载/WEB-INF目录下的applicationContext.xml文件。
  1. 上一篇:基于源搜索引擎的图片搜索研究
  2. 下一篇:Web代理服务器的设计与实现
  1. 基于MATLAB的图像增强算法设计

  2. 基于Kinect的手势跟踪与识别算法设计

  3. JAVA基于安卓平台的医疗护工管理系统设计

  4. 基于核独立元分析的非线...

  5. 基于Hadoop的制造过程大数据存储平台构建

  6. 基于安卓系统的测量软件...

  7. 基于VC++的GIS矢量图形系统开发

  8. 河岸冲刷和泥沙淤积的监测国内外研究现状

  9. 中考体育项目与体育教学合理结合的研究

  10. java+mysql车辆管理系统的设计+源代码

  11. 乳业同业并购式全产业链...

  12. 大众媒体对公共政策制定的影响

  13. 当代大学生慈善意识研究+文献综述

  14. 杂拟谷盗体内共生菌沃尔...

  15. 酸性水汽提装置总汽提塔设计+CAD图纸

  16. 十二层带中心支撑钢结构...

  17. 电站锅炉暖风器设计任务书

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回