- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Struts多模块
232
第十二章 多模块开发与Struts扩展
多模块开发和软件扩展是现代软件开发过程中最重要的理念。对于一个框架型软件来
说,能否进行多模块开发、能否根据需要进行扩展、能否与其他组件无缝合作是衡量一个
优秀框架的重要因素。优秀的框架应具有良好的扩展性和协作性,Struts 框架也不例外。Struts
框架为开发人员提供了多模块开发的方法以及多个扩展点,本章将对这些内容进行介绍。
12.1 多模块开发
对于一些大型的Web 应用,通常会分为几个模块,如用户管理模块,商品管理模块。
如果设计得当,这些模块间就可以同时并行开发,大幅提高开发进度。模块化开发是现在
大中型应用程序开发的流行选择。
并行开发的一个最大的问题就是资源访问冲突,如果处置不当,反而会影响开发效率。
Struts 的配置文件struts-config.xml 是Struts 框架最重要的资源之一,并且是需要频繁改动的。
如果并行开发的各个团队都是用这一个配置文件,势必造成访问冲突。Strus 框架的模块化
机制就是专门应对这种情况的。
Struts 从 1.1 版本开始增加了模块化支持,并且一直在强化对模块化的支持。不同的应
用模块可以拥有各自的struts-config 配置文件、消息资源、Validator 框架配置文件。不同的
模块可以协同开发,互不影响。
模块在 Struts 中的英文术语是 module ,一些与模块化相关的组件的名称中都包含有
module 这样的字眼,如模块配置类为ModuleConfig ,模块实用工具类ModuleUtils 等。
如果要将Struts 应用配置为多模块应用,需要如下三个步骤:
为每个模块分别建立一个struts配置文件;
通知模块控制器;
使用特定的Action在模块间跳转。
下面分别对这个三步骤进行详细介绍,以掌握如何实现多模块的Struts 应用程序。
12.1.1 多模块Struts应用配置
Struts 应用程序是通过配置文件组织资源的,对于多模块应用,每个模块也是通过各自
的配置文件组织各自的资源。当只有一个模块时,即只有默认模块,通常默认模块的配置
文件名为struts-config.xml 。其他模块的命名方式一般为struts-config-模块名.xml。如用户管
理模块的配置文件可命名为 struts-config-usermanage.xml ,商品管理模块的配置文件名为
struts-config-productmanage.xml 。当然,这样的文件名并不是必须的,但按照这种方式给文
件命名从配置文件名本身就可以看出对应的模块和意义。
在多模块环境中,每个模块都有各自独立的配置文件,十分有利于多个小组的协同开
发。在小组协同开发的环境中,通常是一个小组负责一个开发模块。Struts 的多模块机制可
以有效地避免多个小组协同开发中的资源访问冲突,因为每个模块的资源都由各自的配置
文件组织,绝大部分的修改都限于本模块内。
233
12.1.2 通知控制器
通知控制器即是将多模块的配置信息注册到控制器中去。在单模块Struts 应用中,只需
要把默认的Struts 配置文件注册到控制器,这是通过将默认配置文件作为ActionServlet 类的
一个初始化参数实现的。对于多模块的情况,配置的示例代码片段如下(该代码片断来自
web.xml )。
代码12.1
init-param
param-nameconfig/param-name
param-value/WEB-INF/struts-config.xml/param-value
/init-param
init-param
param-nameconfig/module1/param-name
param-value/WEB-INF/struts-config-module1.xml/param-value
/init-param
在这段配置中,配置了两个应用模块:默认模块和名为 module1
文档评论(0)